我的位置: 首頁 > 學習專區 > 安卓技術 > android定時器alarmmanager和timer的區別

android定時器alarmmanager和timer的區別

2012-02-04 11:13:00
來源:
[導讀] 在Android上常用的定時器有兩種,一種是Java util Timer,一種就是系統的AlarmService了。實驗1:使用Java util Timer。在onStart()創創建T

在Android上常用的定時器有兩種,一種是Java.util.Timer,一種就是系統的AlarmService了。

實驗1:使用Java.util.Timer。

在onStart()創創建Timer,每5秒更新一次計數器,并啟動。

Java代碼

1mTimer = new Timer();

2mTimer.schedule(new TimerTask() {

3 @Override

4 public void run() {

5 ++mCount;

6 mHandler.sendEmptyMessage(0);

7 }

8 }, 5*1000, 5*1000);

當連接USB線進行調試時,會發現一切工作正常,每5秒更新一次界面,即使是按下電源鍵,仍然會5秒觸發一次。

當拔掉USB線,按下電源鍵關閉屏幕后,過一段時間再打開,發現定時器明顯沒有繼續計數,停留在了關閉電源鍵時的數字。

實驗2:使用AlarmService:

2.1通過AlarmService每個5秒發送一個廣播,setRepeating時的類型為AlarmManager.ELAPSED_REALTIME。

Java代碼

1AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);

2am.setRepeating(AlarmManager.ELAPSED_REALTIME, firstTime, 5*1000, sender);

拔掉USB線,按下電源鍵,過一段時間再次打開屏幕,發現定時器沒有繼續計數。

2.2setRepeating是的類型設置為AlarmManager.ELAPSED_REALTIME_WAKEUP

Java代碼

1AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);

2am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 5*1000, sender);

拔掉USB線,按下電源鍵,過一點時間再次打開屏幕,發現定時器一直在計數。

如此看來,使用WAKEUP才能保證自己想要的定時器一直工作,但是肯定會引起耗電量的增加。

評論
熱點專題
>>
相關文章推薦
>>
好吊妞免费视频在线观看,久久亚洲国产人成综合网,久久精品国产2020,欧美精品综合在线
日本女优天堂网 | 天天免费在线视频网 | 偷窥国产亚洲女爱视频在线 | 在线观看亚洲中文AV | 一本久久a久久精品综合麻豆 | 亚洲国产国产一区二区三区 |