如何使用意图发回数据时跳过一个活动?

时间:2016-08-01 10:51:18

标签: android android-intent android-activity

考虑我有3个活动Activity1 Activity2 Activity3如果我想从Activity3发送回Activity1的数据跳过Activity2我该怎么办?

3 个答案:

答案 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,你想要在意图内发送数据。