簡體   English   中英

警報管理器喚醒

[英]alarm manager wakeup

我試圖設置一個后台“服務”,該服務每分鍾都會觸發一個執行某些操作的活動。 我找到了Alarm Manager類,並根據Android文檔編寫了以下代碼:

Intent backg = new Intent(getApplicationContext(), CheckConnectivity.class);
boolean backgRunning = (PendingIntent.getBroadcast(getApplicationContext(), 0, backg, PendingIntent.FLAG_NO_CREATE) != null);
if(!backgRunning) {
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, backg, 0);
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 60000, pendingIntent);
}

但該服務並非每分鍾觸發一次,但似乎僅在屏幕關閉時才起作用。 你知道為什么嗎? 我究竟做錯了什么?

警報管理器不可靠,這就是Android引入Job Scheduler的原因。 但是您不能使用Job Scheduler <21。因此,Android在Android Architecture Component中引入了Work Manager 由AlarmManager或JobScheduler在內部處理您的工作。

另一個好的方法是使用Evernote的Jobs ,它將使用下一版本的WorkManager。

最后,我建議您使用工作管理器而不是AlarmManager。

另請參閱我對打ze模式/背景限制的說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM