我看了很多文章,但看起來不適合我!Android鬧鐘管理器在特定時間運行任務
我必須安排一個重複的任務與AlarmManager每天7:15。在活動中設置以下方法併爲其註冊廣播接收器!
private void setTask(Context context) {
Calendar updateTime = Calendar.getInstance();
updateTime.setTimeZone(TimeZone.getTimeZone("GMT"));
updateTime.set(Calendar.HOUR_OF_DAY, 7);
updateTime.set(Calendar.MINUTE, 15);
Intent intent = new Intent(context, NotifyUpdate.class);
PendingIntent fireAlarm = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarms = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarms.setRepeating(alarms.RTC_WAKEUP, updateTime.getTimeInMillis(), alarms.INTERVAL_DAY, fireAlarm);
}
問題是,當我運行方法被執行應用程序立即不管時間的設定,但在(7:15)不執行。
任何想法?
「NotifyUpdate」類是「Service」還是「BroadcastReceiver」? – devnull69
感謝您的回覆!這是一個BroadcastReceiver –
報警似乎很好。偏差可能在其他地方......您確定您不手動從其他地方的BroadcastReceiver調用該方法嗎?此外,如果您沒有將您的應用添加到優化例外列表中,Android6 +打盹模式可能會干擾AlarmManager。 – devnull69