我想在 Android 中创建一个具有到期日期的通知,这意味着在某个日期,如果它没有打开,它将被自动销毁或删除.这可能吗?有人知道怎么做吗?
I would like to create a notification in Android that has an expiration date, meaning that on a certain date, if it's not open, it will be automatically destroyed or removed. Is this possible? Does someone knows how to do this?
感谢您的帮助.
推荐答案如果你有通知 ID,你可以通过调用 NotificationManager.cancel.要实现过期,您可以使用 AlarmManager 设置警报以唤醒 BroadcastReceiver ,这将简单地取消通知.(如果通知不再存在,则取消调用将什么也不做.)
You can remove your own app's notifications if you have the notification ID by calling NotificationManager.cancel. To implement the expiration, you can set an alarm with AlarmManager to wake up a BroadcastReceiver that will simply cancel the notification. (If the notification is no longer there, then the call to cancel will do nothing.)
// post notification notificationManager.notify(id, notification); // set up alarm AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(context, MyBroadcastReceiver.class); intent.setAction("com.your.package.action.CANCEL_NOTIFICATION"); intent.putExtra("notification_id", id); PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); // note: starting with KitKat, use setExact if you need exact timing alarmManager.set(..., pi);在您的 BroadcastRecevier...
In your BroadcastRecevier...
@Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if ("com.your.package.action.CANCEL_NOTIFICATION".equals(action)) { int id = intent.getIntExtra("notification_id", -1); if (id != -1) { NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.cancel(id); } } }更多推荐
创建带有到期日期的 Android 通知
发布评论