Android: android.intent.action.DATE_CHANGED 是否在设备重启时触发?
Android: is android.intent.action.DATE_CHANGED triggered at device reboot?
我做了这个广播接收器
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>
它在设备开启时工作,但如果我将其关闭并等待午夜过去,那么我不会有任何重启意图。我该如何获取?
你不会收到这个广播,因为日期没有改变(除非开机后有时间更新)。它有所不同,但在证明此广播合理性的方式上没有改变。这可能令人困惑,但实际上设备启动时的时间戳是什么并不重要。当设备启动时,它不知道是因为重新启动还是关闭了 5 周。如果时间被人为更改,即由于网络时间同步、通过偏好手动更改时间、时区更改,将发送广播。正常滴答不算数。初始时间戳无关紧要。
如果你需要知道开机日期,你应该听BOOT_COMPLETED
。
您还需要删除 android:exported="false"
或将其设置为 true
,否则无法访问。
我做了这个广播接收器
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>
它在设备开启时工作,但如果我将其关闭并等待午夜过去,那么我不会有任何重启意图。我该如何获取?
你不会收到这个广播,因为日期没有改变(除非开机后有时间更新)。它有所不同,但在证明此广播合理性的方式上没有改变。这可能令人困惑,但实际上设备启动时的时间戳是什么并不重要。当设备启动时,它不知道是因为重新启动还是关闭了 5 周。如果时间被人为更改,即由于网络时间同步、通过偏好手动更改时间、时区更改,将发送广播。正常滴答不算数。初始时间戳无关紧要。
如果你需要知道开机日期,你应该听BOOT_COMPLETED
。
您还需要删除 android:exported="false"
或将其设置为 true
,否则无法访问。