通过意图/待定意图传递数据

3
我希望您能通过意图传递数据,代码>>创建者。
intent = new Intent(this, AlarmReceiverActivity.class);
intent.putExtra("id", id);
intent.putExtra("R/N", a);
pendingIntent = PendingIntent.getActivity(this, id, intent,
PendingIntent.FLAG_UPDATE_CURRENT);

代码 >> 接收者

MainExtras = getIntent();
if (MainExtras != null) {
    MainValue = MainExtras.getIntExtra("id", 000);
    Log.d("MainValue", "" + (MainValue +1));
    MainRon = MainExtras.getStringExtra("R/N");
    Log.d("MainRon", "" + MainRon);
}else{
    Log.d("Failed to get Extras ...", "FAIL -.-");
}

如果我不关闭创建Intent的活动,这个方法就可以很好地工作,但是如果我关闭了,接收器将无法获取附加参数。您有什么想法吗?


我在这里看不到将待处理意图作为额外信息从创建者传递到接收者的代码。如果您有实现此功能的代码,请发布它。 - x-code
它找到了解决方法,清理并优化了代码,现在它可以正常工作了。无论如何还是谢谢,顺便说一句,这段代码似乎完美无缺。 - wexeteme
1个回答

2

我没有尝试过这个方法,但是我认为如果你将标志(flag)更改为指示如果所描述的PendingIntent已经存在,则保留它但使用此新Intent替换其额外数据的标志(flag),那么应该可以实现。

        Intent in = new Intent(context, RecievingActivity.class );
        in.putExtra( "notification_id", REGISTER_NOTIF_ID);  
        in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        in.putExtra("2", Variable);
        in.putExtra("1", Variable);
        in.putExtra("IMData", Variable);
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0, in, 0);

将以下内容添加到您的RecievingActivity.class中:

Bundle extras = getIntent().getExtras();
userGetId = extras.getString("2");
userNameRecv = extras.getString("1");
userFriendId = extras.getString("IMData")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接