特定时间的通知

时间:2013-04-01 13:43:26

标签: android notifications alarmmanager

我在特定时间收到通知,请参阅我的代码:

//Create alarm manager
 AlarmManager alarmMgr0 = (AlarmManager)getSystemService(Context.ALARM_SERVICE);

 //Create pending intent & register it to your alarm notifier class
 Intent intent0 = new Intent(this, AlarmReceiver_maandag_1e.class);
 intent0.putExtra("uur", "1e"); 
 PendingIntent pendingIntent0 = PendingIntent.getBroadcast(this, 0, intent0, 0);

 //set timer you want alarm to work (here I have set it to 8.30)
 Calendar timeOff9 = Calendar.getInstance();
 timeOff9.set(Calendar.HOUR_OF_DAY, 8);
 timeOff9.set(Calendar.MINUTE, 30);
 timeOff9.set(Calendar.SECOND, 0);

 //set that timer as a RTC Wakeup to alarm manager object
 alarmMgr0.set(AlarmManager.RTC_WAKEUP, timeOff9.getTimeInMillis(), pendingIntent0);

除了一件事之外,这是完美的。

通知设置为8:30,并配有警报管理器 如果我在8:30,9:00之后启动应用程序,通知仍会显示..

警报是否有可能在8:30但不在以后发生?

修改

对于有同样问题的人,这是解决方案:

把它放在你的广播接收器中:

long current_time = System.currentTimeMillis();

Calendar timeOff9 = Calendar.getInstance();
timeOff9.set(Calendar.HOUR_OF_DAY, 8);
timeOff9.set(Calendar.MINUTE, 35);
timeOff9.set(Calendar.SECOND, 0);

long limit_time = timeOff9.getTimeInMillis();

if (current_time > limit_time) {
    //nothing
} else {
    //show notification
}

1 个答案:

答案 0 :(得分:2)

您也可以尝试使用Alarm Manager的这种方法:

public void setExact (int type, long triggerAtMillis, PendingIntent operation)

但它需要API级别19。