目前我在我的Android应用程序中设置了一个警报:
scheduleNotification(getNotification("HELLO WORLD"), 5000, 1);
private void scheduleNotification(Notification notification, int delay, int id) {
Intent notificationIntent = new Intent(this, ShowNotification.class);
notificationIntent.putExtra("NOTIFICATION_ID", id);
notificationIntent.putExtra("NOTIFICATION", notification);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.set(
AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + delay,
PendingIntent.getBroadcast(this, id, notificationIntent, PendingIntent.FLAG_ONE_SHOT));
}
private Notification getNotification(String content) {
Notification.Builder builder = new Notification.Builder(this);
builder.setContentText(content);
builder.setSmallIcon(R.drawable.ic_notification_appicon);
return builder.getNotification();
}
是否有办法设置闹钟,该闹钟有效一次,2小时后只有一次?
答案 0 :(得分:0)
AlarmManager中没有设置方法。你应该有自己的计数器在N次之后停止它。
答案 1 :(得分:0)
第一次发射时,您可以再次设置闹钟。使用notificationIntent操作很简单。
第二次设置闹钟时,您不应添加新闹钟。
答案 2 :(得分:0)
你的意思是警报会被解雇两次吗? 在特定时间和其他时间2小时后?
您可以为第二个警报输入不同的ID。
类似的东西:
public final static int ID_DEFAULT = 1;
private final static int ID_REPEAT = 2;
...
switch (id) {
case ID_DEFAULT:
scheduleNotification(notification, DELAY_TWO_HOURS, ID_REPEAT);
case ID_REPEAT:
// Your code
break;
}
答案 3 :(得分:0)
这将在2小时后调用,尝试
PendingIntent pendingIntent = PendingIntent.getBroadcast(activity, notificationId, myIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) activity.getSystemService(
activity.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, 7200000 , pendingIntent);