我想在 Android 中创建一个具有到期日期的通知,这意味着在某个日期,如果它没有打开,它将被自动销毁或删除。这可能吗?有人知道怎么做吗?
感谢您的帮助。
最佳答案
如果您有通知 ID,您可以通过调用 NotificationManager.cancel
删除您自己应用的通知。 .要实现过期,您可以使用 AlarmManager
设置警报以唤醒 BroadcastReceiver
,这将简单地取消通知。 (如果通知不再存在,则调用取消将不会执行任何操作。)
// 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 中...
@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 - 创建带有到期日期的 Android 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23874203/