我遵循以下鏈接https://developer.android.com/training/scheduling/alarms.html。通過傳遞calendar.getTimeInMillis()使用AlarmManager設置通知,立即觸發通知不會在預期的時間
RTC例子第一個,爲所有日子的特定時間設置鬧鐘。即使在遵循相同的代碼之後,警報在假定被觸發時也不會被觸發。相反,notification
會在設置時間選擇器的幫助下完成時間後立即觸發。以下是我的代碼片段,
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, NotificationReceiver.class);
PendingIntent intentalarm = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY,4);
calendar.set(Calendar.MINUTE, 30);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, intentalarm);
代替setRepeating
我也試過setInexactRepeating
但沒有luck.I也想補充的是,當我改變了
calendar.getTimeInMillis()
和使用SystemClock.elapsedRealtime() + 120 * 1000
恰好觸發報警後從設定時間開始2分鐘。
但是,當使用calendar.getTimeInMillis()
時,預期的工作不會發生,而是發生立即觸發。
會確實是非常有益的,如果有人能幫助我找到一條solution.Only的注意,如果報警當前設備的時間之前設定的報警會立即觸發,但在這裏,是不是這樣我可以學習。
NotificationReceiver.class
工作正常,因爲它生成並出現在標題上。但是它出現的時間是令人擔憂的原因。