如何关闭活动并返回到android中的上一个活动

我有一个主要的活动,当我点击一个按钮,开始一个新的活动,我用下面的代码来做到这一点:

Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);

上面的代码是从主要活动中运行的。

现在在主要活动调用的新活动中,我有一个后退按钮。 当我点击这个后退按钮时,我希望我的新活动关闭,并且它必须回到原来的主要活动。

我已经尝试调用super.finish()finish() (来自新的活动),但是这会关闭我的整个应用程序(包括我的主要活动)。

如何关闭当前关注的活动,然后返回到主要活动?

EDITED

事实上,我的手机的后退按钮也关闭了我的整个应用程序,导致我认为我错误地启动了第二个活动?


好的,我一直在寻找,

我创建了一个设置活动,它使用相同的清单代码和相同的代码来启动活动。

对于按下后退按钮时的设置活动,它将返回到主活动。

通过上面提到的主要问题中的活动,它只是退出我的整个应用程序。

所以这个问题似乎不是用代码完成活动,而是活动本身。


我想你在启动SettingsActivity之前在MainActivity中调用finish()方法。

您所描述的场景将通过以下两种方式发生:

无论是

您在AndroidManifest.xml中为MainActivity设置了android:noHistory = "true" ,这会导致MainActivity在按下后退键时自动finish

要么

在切换到“SettingsActivity”之前,您在MainActivity调用了finish() ,这会杀死它。 当您按下返回按钮时,由于没有其他活动被预先设置为弹出堆栈,它将返回到主屏幕。


您只需在您所在的活动中调用finish()即可回到之前的活动。 请注意finish()调用之后的任何代码都会运行 - 您可以在调用finish()来修复此问题后执行返回。

如果您想要将结果返回到活动状态,那么在启动活动状态2时需要:

startActivityForResults(myIntent, MY_REQUEST_CODE);

在被调用的活动内部,您可以从onCreate()参数获取Intent或使用Intent

getIntent();

要设置返回结果到活动一,然后在活动二做

setResult(Activity.RESULT_OK, MyIntentToReturn);

如果你没有意图回报,那么就说

setResult(Activity.RESULT_OK);

如果活动的结果不好,可以使用Activity.RESULT_CANCELED(默认情况下使用)。 然后在活动中你做

onActivityResult(int requestCode, int resultCode, Intent data) {
    // Handle the logic for the requestCode, resultCode and data returned...
}

要完成活动,使用与上面描述的finish()相同的方法,并设置结果。


当你点击你的按钮时,你可以调用它:

super.onBackPressed();
链接地址: http://www.djcxy.com/p/33685.html

上一篇: How to close activity and go back to previous activity in android

下一篇: Returning to or starting a Java activity, natively