多次使用同一个PendingIntent发送广播时,可能会出现Intent对象被重用的情况,导致获取到的数据不正确。
要解决这个问题,可以在创建PendingIntent时,使用PendingIntent.FLAG_UPDATE_CURRENT标志来更新当前的Intent,确保每次发送广播时都是使用新的Intent对象。示例如下:
// 创建Intent对象
Intent intent = new Intent(context, MyReceiver.class);
intent.putExtra("data", "hello world");
// 创建PendingIntent对象,并同时指定FLAG_UPDATE_CURRENT和FLAG_IMMUTABLE标志
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
// 发送广播
pendingIntent.send();
重点是:PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)