android - 创建带有到期日期的 Android 通知

标签 android notifications android-notifications

我想在 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/

相关文章:

iOS 本地推送通知覆盖静音/静默模式

android - 尝试添加本地库时出现Gradle问题

android - okhttp 响应中的新 JsonObject

ios - 迁移到 iOS10 时无法调用 UNNotificationCategory 类型的初始值设定项

iphone - ios 5 如何使用 slider Hook 锁屏通知警报?

android - Android O 中的 NotificationChannel 问题

android - 推送通知图标在 Android Lollipop 及更高版本中变为白色

android - 通过取消绑定(bind)所有有界 Activity 来停止服务

安卓 : Retrieving data from text field in pop up is throwing errors

android - 如何在应用程序中使用库的 manifestPlaceholders?