我的SMS广播接收器出现奇怪的问题。当用户快速连续发送多个短信时,两次都会发送带有最新信息的广播接收器意图。
例如:
User sends SMS ID 2
User sends SMS ID 3
接收者得到:
Mark ID 3 as Read
Mark ID 3 as Read
这是我的短信代码:
for (ignored in parts) {
sentReceivers.add(PendingIntent.getBroadcast(this, mId.toInt(), Intent(this, SmsSentBroadcast::class.java)
.putExtra("message_uri", messageUri.toString()).putExtra("message_id", mId), PendingIntent.FLAG_UPDATE_CURRENT))
if (delivery)
deliverReceivers!!.add(PendingIntent.getActivity(this, mId.toInt(), Intent(this, SmsDeliverBroadcast::class.java).putExtra("message_uri", messageUri.toString()).putExtra("message_id", mId), PendingIntent.FLAG_UPDATE_CURRENT))
}
smsManager.sendMultipartTextMessage(address, null, parts, sentReceivers, deliverReceivers)
答案 0 :(得分:0)
问题在于if (navigator.msSaveBlob) { // IE 10+
var exportedFilenmae = 'somedata.csv';
var blob = new Blob([data], { type: 'text/csv;charset=utf-8;' });
navigator.msSaveBlob(blob, exportedFilenmae);
} else {
..........
}
在某些情况下不是唯一的,因此mId.toInt()
覆盖了它。
现在PendingIntent.FLAG_UPDATE_CURRENT
每次都是唯一的,广播可以按预期运行