android开发分享PendingIntent上使用了什么“requestCode”?

背景:

我正在使用PendingIntent通过AlarmManager进行报警。

问题:

起初我以为要取消以前的那个,我必须提供我以前用过的确切的requestCode来启动报警。

但后来我发现我错了,因为取消API说:

使用匹配的意图删除任何警报。 任何types的意图匹配此警报(由filterEquals(Intent)定义)的警报将被取消。

看“ filterEquals ”,文档说:

确定两个意图是否相同意图解决(过滤)的目的。 也就是说,如果他们的行为,数据,types,类别和类别是相同的。 这并不比较意图中包含的任何额外数据。

所以我没有得到什么“requestCode”是…

问题是:

什么是“requestCode”用于?

如果我使用相同的“requestCode”创build多个警报怎么办? 他们互相覆盖吗?

    我只是想添加@Minhaj Arfin的答案

    1- requestCode用于在稍后获得相同的待定意图(用于取消等)

    2-是的,只要您指定与您在PendingIntent中指定的Intent相同的Receiver,它们就会被覆盖

    例:

     Intent startIntent1 = new Intent(context, AlarmReceiverFirst.class); PendingIntent pendingIntent1 = PendingIntent.getBroadcast(context, 0, startIntent1, 0); Intent startIntent2 = new Intent(context, AlarmReceiverSecond.class); PendingIntent pendingIntent2 = PendingIntent.getBroadcast(context, 0, startIntent2, 0); 

    从上面的例子来看,它们不会相互覆盖, 因为接收器是不同的 (AlarmReceiverFirst和AlarmReceiverSecond)

     Intent startIntent2 = new Intent(context, AlarmReceiverSecond.class); PendingIntent pendingIntent2 = PendingIntent.getBroadcast(context, 0, startIntent2, 0); Intent startIntent3 = new Intent(context, AlarmReceiverSecond.class); PendingIntent pendingIntent3 = PendingIntent.getBroadcast(context, 0, startIntent3, 0); 

    从上面的例子来看,它们相互覆盖, 因为接收机是相同的 (AlarmReceiverSecond)

      以上就是android开发分享PendingIntent上使用了什么“requestCode”?相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/515358.html

      (0)
      上一篇 2020年12月1日
      下一篇 2020年12月1日

      精彩推荐