我遵循以下链接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
工作正常,因为它生成并出现在标题上。但是它出现的时间是令人担忧的原因。