2010-07-18 70 views
6

Android是否從深度睡眠喚醒以便播放ACTION_TIME_TICK?從實驗來看,我不認爲它確實如此,但我正在尋找一個明確的答案。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個刻度,這就是爲什麼我懷疑它沒有在深度睡眠中廣播該動作。

+0

我正在經歷我懷疑是完全相同的問題。你有沒有找到任何解決方案/解決方法? – mschonaker 2010-11-05 22:55:54

回答

9

我看着Android代碼。沒有這個廣播不會喚醒電話。它使用AlarmManager.RTC類型Alarm來廣播時間更改。

爲什麼你需要每分鐘通過字面通知?

如何使用AlarmManager.RTC_WAKEUP類型設置自己的鬧鐘?

警告:每分鐘都這樣做會耗盡你的電池。我建議不要經常這樣做,就像每個小時一樣。

請讓我知道這是否有幫助。

Emmanuel

+0

我不能完全記得我究竟該如何使用它(我之前放棄了這方面的工作),但該項目涉及比系統提供的更詳細的正常運行時間跟蹤。實際上,我認爲我更喜歡在手機睡着時不做通知,但希望得到一些確認(因爲API文檔在該點上不清楚)。 – 2010-11-08 17:15:01

+0

使用警報管理器工作正常。謝謝。我只是想知道這種行爲的原因。你找到了。 – mschonaker 2010-11-09 13:37:56

3

更好的實驗:除了更新TextView的,你不能看到當手機處於關閉狀態,寫日誌用:

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

可以留意這logcat的,而你的手機是睡着了。

相關問題