gpt4 book ai didi

android - 取消并重新创建新的 PendingIntent

转载 作者:行者123 更新时间:2023-11-29 17:37:15 28 4
gpt4 key购买 nike

我正在我的游戏中创建一个通知。如果玩家有一段时间没有玩游戏,我想显示通知。我正在使用以下带有警报设置的 PendingIntent 来创建通知。有了这个,我就可以创建通知。

问题:如果玩家玩游戏,我需要取消现有的待处理 Intent 并创建一个新的待处理 Intent。我希望 Pending Intent 标志将用于实现?请指教。如果您能对可用的 Flags 有所了解,那将是一个很大的帮助。

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);

最佳答案

取消使用 FLAG_ONE_SHOT 创建的 PendingIntent 的唯一方法是保留对该 PendingIntent 的引用,然后调用cancel() 在引用上。

如果您不再有引用,则无法取消此 PendingIntent

您不需要使用 FLAG_ONE_SHOT,所以我不会那样做。它造成的问题多于解决的问题。

根据你在评论中对我问题的回答,你想做的是取消闹钟。您不需要取消 PendingIntent。要取消闹钟,只需执行以下操作:

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.cancel(pendingIntent);

如果您在 PendingIntent 中没有任何“extras”,那么您可以像这样创建您的 PendingIntent:

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);

如果您在重置闹钟时需要替换PendingIntent中的“extras”,您可以像这样创建PendingIntent:

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);

关于android - 取消并重新创建新的 PendingIntent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30023602/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com