gpt4 book ai didi

android - 从AlarmManager中删除报警时,我是否也应该取消PendingIntent?

转载 作者:行者123 更新时间:2023-12-02 03:15:42 25 4
gpt4 key购买 nike

我正在尝试从 AlarmManager 中删除警报。我刚刚调用了 AlarmManager.cancel(),它似乎工作正常。我还应该取消 PendingIntent 吗?为什么?

PendingIntent p; // prepare a pending intent which matches target alarm's intent.
alarmManager.cancel(p);
p.cancel() // should I do that?

最佳答案

切勿将 FLAG_CANCEL_CURRENT 与您在设置警报时使用的 PendingIntents 一起使用。如果您想将闹钟重新安排在不同的时间,则根本不需要任何标志;只需创建一个标志为零的重复 PendingIntent,然后使用它来设置()一个警报:这将隐式取消现有警报,然后将其设置为新指定的时间。但是,如果您在创建新的 PendingIntent 时使用了 FLAG_CANCEL_CURRENT,它会破坏警报管理器识别它与现在已取消的 PendingIntent“相同”的能力,并且您最终会发现旧的挂起,无法交付,占用内存和中央处理器。我已经看到有这个错误的应用程序在系统中堆积了数百个陈旧的警报,足以对性能和内存使用造成明显的影响。

如果您只是想更改附加功能而不实际重新安排现有警报,这就是 FLAG_UPDATE_CURRENT 的用途。如果您想重新安排或取消现有警报,请不要使用任何标志。

关于android - 从AlarmManager中删除报警时,我是否也应该取消PendingIntent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176218/

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