Android 打开多个活动时如何返回到第一个活动

Android 打开多个活动时如何返回到第一个活动,android,android-activity,Android,Android Activity,我有一个应用程序,其中有HomeActivity和4个活动A、B、C、D。 我想在点击HomeActivity中的按钮start\u activity\u A\u btn时启动活动A,A启动B,B启动C,C启动D,然后done按钮将我带到HomeActivity。 注意:在每个活动(A、B、C、D)中,我都有一些数据要保存,并在按下done按钮后返回家庭活动。如果您需要返回活动的数据,应使用启动ABCD。这与您的HomeActivity打开某个对话框非常相似,一旦活动完成(视情况而定,按“完成”

我有一个应用程序,其中有HomeActivity和4个活动A、B、C、D。 我想在点击HomeActivity中的按钮
start\u activity\u A\u btn
时启动活动A,A启动B,B启动C,C启动D,然后
done
按钮将我带到HomeActivity。

注意:在每个活动(A、B、C、D)中,我都有一些
数据要保存,并在按下
done
按钮后返回家庭活动。

如果您需要返回活动的数据,应使用启动ABCD。这与您的HomeActivity打开某个对话框非常相似,一旦活动完成(视情况而定,按“完成”或“取消”),您就可以进入HomeActivity

您需要做的是在您的意图中使用以下标志(请检查链接,它解释了与您面临的情况类似的情况):。因此,在活动D中,在“完成”按钮的onClickListener中,您必须使用以下代码:

Intent intent = new Intent(this, ActivityAname.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.putExtra("data", dataYouReceiveFromABCD);
startActivity(intent);
这将使您的A活动恢复

现在,关于“数据”,如果可能的话,您只需使用一些分隔符(因为您没有告诉我们这些数据到底是什么),将这些数据累积成一个字符串,因此如果是用户名和密码,您可以使用可能永远不会出现的随机字符组合(“246@$^”)将它们分开然后继续创建一个字符串,在a、B、C和D中不断构建该字符串,最后在D中将该字符串作为额外的字符串放入intent中(检查我上面发布的代码)。如果它是其他类型的数据,那么如果有帮助的话,您也许可以序列化它。但是,如果您确实使用带有预定分隔符的字符串,那么您需要做的就是在活动a中,您必须在活动a的onResume()方法中使用以下代码

if(this.getIntent().getExtras().getString("data") != null)
{
  String data = this.getIntent().getExtras().getString("data");
  //do some stuff here with that data
}

我想要接收的数据是int[],数组将从HomeActivity发送,并在每个活动A、B、C、D中进行一些修改,然后HomeActivity将再次接收它。我知道这种方式,但我想关闭所有选项卡,并在不通过A、B、C的情况下从D返回HomeActivity