TIME_TICK会在深度睡眠中播出吗?

时间:2010-07-18 06:37:25

标签: android

为了广播ACTION_TIME_TICK,Android是否会从深度睡眠中唤醒?从实验来看,我认为没有,但我正在寻找一个明确的答案。

我的实验涉及在接收时注册一个简单的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个刻度,这就是为什么我怀疑它不会在深度睡眠期间播放动作。

2 个答案:

答案 0 :(得分:9)

我查看了Android代码。没有这个广播不会唤醒手机。它使用AlarmManager.RTC类型Alarm来广播时间变化。

为什么你需要每分钟通知一次?

如何使用AlarmManager.RTC_WAKEUP类型设置自己的闹钟?

警告:每分钟都会耗尽电量。我建议不要经常这样做,比如每小时。

如果这有用,请告诉我。

灵光

答案 1 :(得分:3)

更好的实验:不是更新手机关闭时无法看到的TextView,而是通过以下方式写入日志:

Log.v("Tick","Total ticks: " + ++ctr);

当手机处于睡眠状态时,您可以在Logcat中留意这一点。