PendingIntent putExtras(mBundle)数据重复问题

在Android推送通知服务中,遇到PendingIntent打开Activity时,尽管每次通知的extras不同,但Activity获取的数据未更新的问题。尝试了多种Intent Flag,如FLAG_ACTIVITY_NEW_TASK等,但无效。解决方案是使用PendingIntent.FLAG_UPDATE_CURRENT,确保extras能正确传递到目标Activity。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

             今天做Android推送通知模块,发现在Service中使用PendingIntent打开Activity时,虽然每次通知都会改变putExtra中的值,但是Activity里getStringExtra时,值没有任何变化,很奇怪。


加了一些Flag

  1. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
  2. intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
  3. intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
  4. intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
  5. intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 


也没有起作用

查了一些资料,发现如果你之前已经创建过一个PendingIntent,而之后创建的PendingIntent和之前的基本相似,那么就必须加上如下的声明PendingIntent.FLAG_UPDATE_CURRENT,否则extras不会传递到目标Activity

  1. PendingIntent contentIntent = PendingIntent.getActivity(this, 0,  
  2.    notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);  
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
                        notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值