考虑我有3个活动Activity1 Activity2 Activity3如果我想从Activity3发送回Activity1的数据跳过Activity2我该怎么办?
答案 0 :(得分:7)
将 FLAG_ACTIVITY_FORWARD_RESULT 添加到意图中有一种“正确”的方法。
用于启动下一个活动并通知它将结果传递给第一个活动:< / p>
的代码:强>
Activity 1 -> startActivityForResult(activityB,0);
Activity 2 -> activityCintent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivity(activityCintent); finish();
Activity 3 -> setresult(10); finish();
Activity 1 -> if(result==10) {dofunction(); }
答案 1 :(得分:2)
再次重新启动activity1不是一个好方法。
您可以使用“startActivityForResult”
来实现此目的使用以下代码启动Activity2
Intent intent = new Intent(mContext, Activity2.class);
startActivityForResult(intent, REQUEST_CODE);
使用以下代码启动Activity3
Intent intent = new Intent(mContext, Activity3.class);
startActivityForResult(intent, REQUEST_CODE);
在activity3中,使用以下代码将数据发送到activity1:
Intent intent = getIntent();
intent.putExtra("Key", value);
setResult(RESULT_OK, intent);
finish();
覆盖Activity1和Activity2中的onActivityResult。
在activity2的onActivityResult中,检查请求代码和结果代码。基于此调用finish(),并将值设置如下:
boolean value = data.getBooleanExtra("key, false);
Intent intent = getIntent();
intent.putExtra("Key", Value);
setResult(RESULT_OK, intent);
finish();
在activity1的onActivityResult中,您将获得数据。
答案 2 :(得分:0)
如果你不认为只是发送数据重启活动1,你想要在意图内发送数据。