您的位置:首页 > 移动开发 > Android开发

android 多次调用PendingIntent.getBroadcast intent数据不更新问题

2013-05-09 23:20 507 查看
转自:http://www.reasono.com/?p=318

实验环境:

windows 7

Android Developer Tools

Build: v21.1.0-569685

今日在开发一个小app的时候遇到一个问题:

该app需要实现本机发送短信,遂,通过

SmsManager + PendingIntent.getBroadcast 的方式实现,因为短信队列里包含多个号码,且发送完毕后需要更新发送状态,所以需要在BroadcastReceiver回调中得到发送短信的ID,大体实现如下(大家也可以参考下具体发送短信的机制):

1、接收短信发送后的回调函数:

2、开始发送短信:

开始的时候多次发送短信成功,但是intent中的数据总是第一次传入的数据,其后就不能更新,通过google多次,尽一天的时间得到的结论是:

需要在PendingIntent.getBroadcast函数中设置第4个参数为 PendingIntent.FLAG_UPDATE_CURRENT

即:PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, sentIntent, PendingIntent.FLAG_UPDATE_CURRENT);

但是我这里还是不能成功,百思不得其解啊。

于是就修改了第二个参数requestCode,即

测试通过,哈哈~~。

有的同学还提出修改了requestCode也没起作用,我建议同时修改

PendingIntent intent= PendingIntent.getBroadcast(Context context, int requestCode, Intent intent, int flags)的requestCode 和flags试试,好运~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: