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