NotificationManager - 如果没有在两小时内按下,如何发出通知会记录“否”?

时间:2013-03-14 03:08:58

标签: android alarmmanager notificationmanager

我已在某个时间设置状态栏中显示的通知。按下它时,它会将“是”记录到数据库中。但是如果2小时后没有按下,我希望它记录“否”。我理解如何进行日志记录部分,但如果没有在两小时内按下,我就没有关于如何调用该场景的线索。我知道我可以创建两个日历来比较它们,但是我会在哪里放这些日历?有什么建议吗?我在下面添加了一些代码。谢谢!

设置警报代码:

Intent intent_noti = new Intent(this,Nofi.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 12345, intent_noti,
        PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), setTime,
pendingIntent);

通知代码:

Intent intent = new Intent(this, ScanActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
Notification noti = new Notification.Builder(this)
        .setContentTitle("MedScan")
        .setContentText("2. You should take pills now")
        .setSmallIcon(R.drawable.original)
        .setContentIntent(pIntent)
        .build();
NotificationManager notificationManager = (NotificationManager) getSystemService(
        NOTIFICATION_SERVICE);
noti.defaults |= Notification.DEFAULT_ALL;
// Hide the notification after its selected
noti.flags |= Notification.FLAG_AUTO_CANCEL;

notificationManager.notify(ID, noti);

1 个答案:

答案 0 :(得分:2)

如果用户明确deleteIntent Clear

,您可以将Notification与您的通知对象一起传递

为了实现您的目标,您可以执行以下操作:

  • 当您显示通知时,启动将在两小时后触发的警报
  • 处理用户点击Notification或点击Clear并取消Alarm
  • 的两种情况
  • 如果警报触发,则表示您的通知仍显示在数据库中的日志no