待定意图广播唯一

时间:2014-01-06 11:27:31

标签: android android-pendingintent

当我广播待定意图并通过putExtra()提供我的数据时,我在接收器中获得这些意图并使用相同的数据,这等于第一个创建的待定意图 。代码:

for (int i = 0; i < parts.size(); i++) {
    mSendIntent=new  Intent("CTS_SMS_SEND_ACTION");
    mSendIntent.putExtra("key",i):
    sentIntents.add(PendingIntent.getBroadcast(smscontext, 0, mSendIntent,
            0));
}

我尝试通过向getBroadcast方法添加一些标记来获得我的结果但不成功,任何想法?

1 个答案:

答案 0 :(得分:2)

要在每次调用PendingIntent时获得唯一的getBroadcast(),您需要提供唯一的Intent操作或唯一的请求代码。在您的示例中,最简单的方法是提供唯一的请求代码。试试这个:

for (int i = 0; i < parts.size(); i++) {
    mSendIntent=new Intent("CTS_SMS_SEND_ACTION");
    mSendIntent.putExtra("key", i):
    sentIntents.add(PendingIntent.getBroadcast(smscontext, i, mSendIntent, 0));
}

我使用i作为requestCode参数。但是,i可能不够独特(我不知道你的其余代码)。您可能需要添加日期或其他值以使其唯一。