所以我有一個非常簡單的android活動,當您點擊一個按鈕時啓動一個計時器。當屏幕變爲不活動時,計時器似乎暫停
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
doStuff();
}
}, 15 * 60 * 1000);
所以這個工作相當好我,當我在測試,但事實證明,當屏幕處於非活動狀態也是如此計時器。我對此感到有點驚訝。我知道你需要創建一個服務來讓後臺運行任何東西,但是我並沒有意識到這是在手機由於缺乏活動而使屏幕失效時在前臺進行的活動所必需的。令我困惑的是,我認爲這個工作原本就是我期望的,只是在過去幾周左右,定時器才受到節電的影響。我可能錯了,但..
所以基本上我的問題是:我看到預期的行爲?我是否需要將所有定時器創建爲服務或以某種方式禁止節能?
感謝您的任何建議, 帕特里克
它基本上只是一個鬧鐘。當15分鐘後,它會發出噪音。 感謝您的好解答。 – elchuppa 2010-03-20 20:30:42
如果15分鐘後警報必須響起,您需要投資'AlarmManager'。屏幕保持技巧只有在你的活動正在運行時纔會起作用,用戶可以按BACK退出它,或者啓動另一個應用程序或其他東西。如果只關心計時器,如果活動已啓動並正在運行,則可以使用「FLAG_KEEP_SCREEN_ON」方法。 – CommonsWare 2010-03-20 20:34:11