Android:设备重启时是否触发了android.intent.action.DATE_CHANGED?

问题描述 投票:1回答:1

我制作了此广播接收器

public class DateReceiver extends BroadcastReceiver {
   @Override
   public void onReceive(Context context, Intent intent) {
     Log.i("DATE RECEIVER", "OK");
   }
}

在清单中注册

     <receiver
        android:name=".DateReceiver"
        android:enabled="true"
        android:exported="false" >
        <intent-filter>
            <action android:name="android.intent.action.DATE_CHANGED" />
        </intent-filter>
     </receiver>

当设备打开时它可以工作,但是如果我将其关闭并等待午夜过去,那么重启时我不会有任何意图。我应该如何获得?

android date android-intent broadcastreceiver android-broadcast
1个回答
5
投票

您不会收到此广播,因为日期没有更改(除非启动后时间有更新)。它有所不同,但没有改变证明此广播的方式。这可能会造成混淆,但实际上,设备启动时的时间戳并不重要。设备启动时,它不知道这是由于重新启动还是关闭了5周。如果人为更改时间(即由于网络时间同步,通过首选项手动更改时间,时区更改),则会发送广播。正常的滴答声不算在内。初始时间戳无关紧要。

如果需要在启动时知道日期,则应听BOOT_COMPLETED

您还需要删除android:exported="false"或将其设置为true,否则将无法访问。

© www.soinside.com 2019 - 2024. All rights reserved.