You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Catima应用Android电源菜单Device Controls跳转Intent携带相同ID问题

问题根因

你的代码问题出在PendingIntent的创建逻辑上:
Android系统判定两个PendingIntent是否可复用的核心依据是requestCode、Intent的action/data/category/component/type这几个字段,只有以上字段存在差异时,系统才会视为两个独立的PendingIntent。
你在调用PendingIntent.getActivity()时,所有请求的第二个参数requestCode都统一传了固定值0,同时用了PendingIntent.FLAG_IMMUTABLE标记禁止修改PendingIntent内容,系统会认为后续创建的所有PendingIntent都是对第一个的复用,即使你在Intent的Extra中传入了不同的卡片ID,也会被系统直接忽略,最终触发跳转时永远使用最早创建的PendingIntent携带的Extra值,就出现了所有控件跳转都打开同一张会员卡的现象。

修复方案

只需要将PendingIntent.getActivity()的requestCode参数替换为和当前会员卡唯一绑定的数值即可,直接使用会员卡的整型IDcard.id就可以,保证每个PendingIntent的requestCode唯一,系统就不会错误复用。
修改后的代码如下:

// 仅修改requestCode参数为card.id即可
PendingIntent pendingIntent = PendingIntent.getActivity(getBaseContext(), card.id, openIntent, PendingIntent.FLAG_IMMUTABLE);

内容的提问来源于stack exchange,提问作者usr-local-ΕΨΗΕΛΩΝ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:45:03