快速连续发送的广播导致广播接收器出现问题

时间:2018-07-07 17:20:44

标签: android

我的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)

1 个答案:

答案 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每次都是唯一的,广播可以按预期运行