簡體   English   中英

Android-有時會使用AlarmManager在錯誤的時間觸發警報

[英]Android - Alarms sometimes fires at the wrong time using AlarmManager

這個問題似乎有點奇怪,但是如果有人遇到這樣的事情,請幫助我...

我創建了一個警報調度程序,該警報調度程序使用AlarmManager通過以下代碼向用戶發送警報:

    Intent intent = new Intent(context, AlarmReceiver.class);
    intent.putExtra("tk_alert_id", lastAlertId.getId()+"");
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, idRandom, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
    AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, date.getTimeInMillis(), pendingIntent);

問題是,有時我會在錯誤的時間在我的AlarmReceiver( BroadcastReceiver )上收到此警報,如您在下面的圖像image中看到的: image ,但我不知道是什么問題...我檢查了時間日期,並設置為“ 2015-05-27 17:00:00”,但幾分鍾前(大約16:57)收到了此郵件...

有誰知道我在這里遇到什么樣的問題?

對於<19的API級別,您應該使用AlarmManager.setRepeating(),並且警報將在指定的時間准確觸發。

大於或等於19的Api級別將不再起作用。 android中發生了更改,因此所有重復的警報都不精確。

因此,如果您想實現精確的重復警報,請使用AlarmManager.setExact()。

有關更多信息,請參見此問題

編輯為達到您的目的(在某個特定時間發出一次警報),請使用alarmManager.setExact(....)。 查看文件

暫無
暫無

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

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