安卓是为了播放ACTION_TIME_TICK而从深度睡眠中醒来的吗?从实验来看,我不认为它是正确的,但我正在寻找一个明确的答案。
我的实验包括在接收时注册一个简单的BroadcastReceiver来更新TextView:
registerReceiver(new BroadcastReceiver() {
int ctr = 0;
@Override
public void onReceive(Context context, Intent intent) {
testView.setText("Time ticks: " + ++ctr);
}
}, new IntentFilter(Intent.ACTION_TIME_TICK));在4个滴答时,我关闭了屏幕大约5分钟,然后又打开了它,它显示了6个滴答。在13个刻度时,我打开屏幕10分钟,然后重新打开,刻度数显示为14。无论我关机多长时间,它似乎只会增加1-2个刻度,这就是为什么我怀疑它在深度睡眠时不会广播动作的原因。
发布于 2010-11-08 23:25:23
我看了Android的代码。不,此广播不会唤醒电话。它使用AlarmManager.RTC类型的Alarm来广播时间更改。
为什么你需要每分钟都收到通知?
使用AlarmManager.RTC_WAKEUP类型设置您自己的闹钟怎么样?
警告:每分钟做一次会耗尽你的电池。我建议少做一些,比如每小时做一次。
如果这对我有帮助,请告诉我。
伊曼纽尔
发布于 2010-11-08 22:24:17
一个更好的实验:不要在手机关机时更新你看不到的TextView,而是写到日志中:
Log.v("Tick","Total ticks: " + ++ctr);当你的手机处于睡眠状态时,你可以在Logcat中注意到这一点。
https://stackoverflow.com/questions/3274583
复制相似问题