PendingIntent 的使用以及多个通知中携带的数据异常问题

PendingIntent是一种延迟执行的Intent,适用于通知、短信和闹钟等场景。当在多个通知中使用PendingIntent时,可能会遇到携带的数据异常问题,即不同通知获取到的Intent参数相同。解决这个问题的方法是在创建PendingIntent时,确保使用不同的requestCode,如使用UUID.randomUUID().hashCode(),以保证每个PendingIntent的独特性,从而维护intent中的data独立性。
摘要由CSDN通过智能技术生成

 

PendingIntent 作用

一种特殊的Intent。和Intent区别在于执行的时机不一样。Intent是立刻执行,PendingIntent是等待条件满足在执行。常用于通知、短信、闹钟等应用情景。

PendingIntent 的标志


    /**
     * 指示此PendingIntent只能使用一次的标志。 
     * 与{@link #getActivity},{@ link #getBroadcast}和 {@link #getService}一起使用。 
     * 如果设置,则在 {@link #send()}上被调用后,它将自动为您取消,并且以后任何尝试通过它发送的尝试都会失败。
     */
    public static final int FLAG_ONE_SHOT = 1<<30;
    /**
     * 指示如果所描述的PendingIntent还不存在的标志,则只需返回null而不是创建它。 
     * 与{@link #getActivity},{@ link #getBroadcast}和 {@link #getService}一起使用。
     */
    public static final int FLAG_NO_CREATE = 1<<29;
    /**
     * 表示如果所描述的PendingIntent已经存在的标志,则在生成新的PendingIntent之前应将其取消。
     * 与{@link #getActivity},{@ link #getBroadcast}和 {@link #getService}一起使用。 
     * 当您仅更改Intent中的额外数据时,可以使用来检索新的PendingIntent;通过取消先前的
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值