Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android返回到以前的活动_Android_Android Intent_Android Activity - Fatal编程技术网

Android返回到以前的活动

Android返回到以前的活动,android,android-intent,android-activity,Android,Android Intent,Android Activity,我有两个活动,main活动和NextActivity。从MainActivity我可以转到nextractivity,然后使用Intent返回到MainActivity。但是随后会调用OnCreate和其他东西,一切都会再次初始化。我想回到我进入nextractivity之前的状态 我意识到,如果我使用手机上的物理后退按钮,就完全可以实现这一点 那么,如何像返回按钮一样返回到活动 附言。 我测试了finish(),但没有帮助。您只需调用onBackPressed(),而不是使用Intent返回到

我有两个活动,
main活动
NextActivity
。从
MainActivity
我可以转到
nextractivity
,然后使用
Intent
返回到
MainActivity
。但是随后会调用
OnCreate
和其他东西,一切都会再次初始化。我想回到我进入
nextractivity
之前的状态

我意识到,如果我使用手机上的物理后退按钮,就完全可以实现这一点

那么,如何像返回按钮一样返回到活动

附言。
我测试了
finish()
,但没有帮助。

您只需调用
onBackPressed()
,而不是使用
Intent
返回到
MainActivity

例如:

public void onClick() {
    onBackPressed();
}

注意:
finish()

B放在后堆栈上,B聚焦。单击后退按钮时,活动B将从后堆栈中弹出。活动A恢复

注意:一次可以在后台执行多个任务。但是,如果用户同时运行多个后台任务,系统可能会开始销毁后台活动以恢复内存,从而导致活动状态丢失。请参阅以下关于活动状态的部分

。活动一旦被销毁,就必须重新创建。当屏幕方向改变时,活动将被解除锁定并重新创建

。您应该看看后堆栈是如何工作的

在您的情况下,finish应该适合您(按back按钮)

注意:系统在所有情况下调用onPause()和onStop()后都会调用onDestroy(),只有一种情况除外:从onCreate()方法中调用finish()时

假设您有第三个活动C,并且希望转到活动a

 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
    onBackPressed();

}

return super.onKeyDown(keyCode, event);
}

 public void onBackPressed() {
Intent myIntent = new Intent(ActivityC.this, MainActivity.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);// clear back stack
startActivity(myIntent);
finish();
return;
}

你真的考完了吗?怎样?这就是路,完成就是路。这不起作用是什么意思?也许你的内存不足,Android必须重建你的活动?我不认为有任何保证你以前的活动仍然可用。您最好使用首选项或某种存储来保存状态,以防活动被垃圾收集。如果按“后退”按钮实现了您想要的效果,请不要创建返回的新意图。从第一个活动中删除finish(),在第二个活动中返回调用finish(),你没事,我按下了一个小按钮,而不是调用finish()的大按钮(所以我按下的小按钮是调用intent,我的坏,对不起!:)这是答案@Jonas