恢复Android中的活动

时间:2012-09-13 14:34:32

标签: android android-activity resume onstart

我有一个包含3个活动的应用。

我有主要活动。这将调用第二个活动,然后调用第三个活动。我想在不进入onCreate的情况下返回主要活动。

这是第三项活动的代码:

startActivity(new Intent(TerceraActiviry.this, Main.class));

4 个答案:

答案 0 :(得分:46)

如果您的Activity仍在运行,则此代码会将其显示在前面,而不会输入onCreate

Intent openMainActivity= new Intent(TerceraActiviry.this, Main.class));
openMainActivity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivityIfNeeded(openMainActivity, 0);

答案 1 :(得分:2)

要返回上一个活动,您必须完成可见的活动,请使用:

finish();

如果为结果启动了活动,那么您应该给出结果,如下所示:

Intent intent = new Intent();
intent.putExtra(KEY_RESPONSE, responseData);
setResult(RESULT_OK, intent);
finish();

你应该使用以下方法在调用者Activity上捕获结果:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  switch (requestCode) {
    // Test for the code you have used to start the Activity
  }
}

希望它有所帮助, 此致

答案 2 :(得分:1)

你是startActivityForResult而不是startActivity。

请参阅android dev以获取更多信息here

答案 3 :(得分:0)

您想要的启动模式标志是clearTop。这将返回到主活动的上一个实例,并清除活动堆栈中的第二个和第三个活动。例如,要从代码中执行此操作:

Intent intent = new Intent(TerceraActiviry.this, Main.class));
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);