返回到以前的活动不删除当前状态- Android



我写了一个Android应用程序,有几个Activity和一个Main Activity。当我从主活动转到活动B时,我想"暂停"主活动,当按下后退按钮时,它应该返回并重新激活主活动,而不是调用onCreate()

这将适用于所有活动,所以如果我点击一个按钮来启动活动B,它也将重新激活旧的活动B,而不是用onCreate()创建一个新的状态。

我怎么能意识到这一点?

PS:我已经尝试过parcelable,但这只工作,如果我关闭应用程序或发生意外的事情。

当您启动另一个活动时,第一个活动总是有可能被销毁。当您返回时,它将被重新创建。每个应用程序都应该考虑到这种可能性。为了确保你的活动可以处理被销毁和重新创建,打开"不保留活动"开发人员选项。

Android默认设置。如果从活动A启动活动B,则活动A进入停止状态。下面的方法将被活动A

调用
  1. onPause ()
  2. 原()

当你点击活动b上的返回键时,活动A的方法将被调用。

  1. onRestart ()
  2. onStart ()
  3. onResume ()

对于重新激活Activity B,您可以将Activity B的启动模式设置为singleInstance。这将确保只创建活动B的单个实例。onCreate将不会再被调用。onNewIntent将在该活动重新激活时被调用。

参考:http://developer.android.com/guide/topics/manifest/activity-element.html lmode

活动按堆栈顺序存在。每个活动都有自己的生命周期。当你关闭一个活动(活动B在你的例子),它最终到达onDestroy()方法,并从堆栈顺序中删除。这是Android的默认设置,你无法改变它。

你可以做的是重写onStop()方法在活动B和保存一些活动数据(如EditText文本,例如)在SharedPreferences -阅读这里。然后在你的onCreate()方法中,你可以调用SharedPreferences,检查它是否为空,并通过键拉取适当的值来恢复EditText中的文本。

最新更新