Android小知識-電量優化AlarmManager的使用
AlarmManager是Android SDK提供的一個喚醒API,它是系統級別的服務,可以在特點的時刻廣播一個指定的Intent,這個PendingIntent可以用來啟動Activity、Service或BroadcastReceiver。
使用方式如下:
private void initAlarmManager(){ Intent intent=new Intent("com.glh.alarmmanager"); PendingIntent pendingIntent=PendingIntent.getBroadcast(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarmManager= (AlarmManager) getSystemService(Context.ALARM_SERVICE); alarmManager.cancel(pendingIntent); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),60*10*1000,pendingIntent); }
上面程式碼中每隔10分鐘會喚醒一次,同時對指定的Intent傳送廣播。
AlarmManager提供了常用的三種方法:
-
set:設定一次性的鬧鐘操作。
-
setRepeating:設定重複性的鬧鐘操作。
-
setInexactRepeating:也是設定重複性的鬧鐘操作,只不過兩個相連的鬧鐘執行的間隔時間不是固定的。
三個方法傳入的第一個引數type為鬧鐘的型別,有以下幾種型別:
-
RTC_WAKEUP:表示鬧鐘在睡眠狀態下喚醒系統並執行提示功能,絕對時間。
-
RTC:睡眠狀態下不可用,絕對時間。
-
ELAPSED_REALTIME_WAKEUP:睡眠狀態下可用,相對時間。
-
ELAPSED_REALTIME:睡眠狀態下不可用,相對時間。
絕對時間就是手機的時間,相對時間是相對於開機時間。
AlarmManager的喚醒功能比較耗電,通常情況下需要保證兩次喚醒操作的時間間隔不要太短,在不需要使用喚醒功能的情況下儘早取消AlarmManager,否則應用會一直處於耗電狀態。

掃碼_搜尋聯合傳播樣式-標準色版.png
Android、Java、Python、Go、PHP、IOS、C++、HTML等等技術文章,更有各種書籍推薦和程式員資訊,快來加入我們吧!關注技術共享筆記。

838794-506ddad529df4cd4.webp.jpg
搜尋微信“顧林海”公眾號,定期推送優質文章。