繁体   English   中英

保存Android应用程序状态

[英]Saving Android application state

我了解如何通过使用SharedPreferences,onSavedInstanceState()和onRestoreInstanceState()等来保存应用程序的状态,如类似帖子( 使用保存实例状态保存Android活动状态 )中所述,但如何保存上一个活动?

更具体地说,我的应用程序启动并进入登录屏幕。 一旦用户登录并浏览了几个活动,就可以说他或她使用主页按钮或以其他方式离开应用程序。 下次用户启动应用程序时,它将返回登录屏幕并再次登录。 相反,我希望应用程序启动并转到用户在上一个会话中离开应用程序时在堆栈顶部的最后一个活动。

如何保存最后一个活动,以便可以在应用启动时恢复?

我相信Android会自动执行此操作。 我们正在开发一款应用。 当我点击主页按钮然后他们回到应用程序时,它会从我离开的活动开始。 我们还没有编写任何代码来实现这一目标。 它似乎工作。

我的同事写了一篇关于Android应用程序状态的文章,其中包括getLastNonConfigurationInstance()的详细信息,该文件检索上次存储的实例。 看看这里: http//www.eigo.co.uk/Managing-State-in-an-Android-Activity.aspx

请注意,上述答案仅在一种情况下是正确的:如果你的进程没有被android杀死,因为资源(内存,......)是出于不同原因需要的。

为了得到你描述的内容,我会编写一个自定义父活动并覆盖正确的生命周期方法来存储你的应用程序状态并阅读它并采取相应的行动。 然后让你的所有活动都继承自MyActivity(而不是android.app.Activity)


public MyActivity extends android.app.Activity {
...
@Override
public onCreate(...) {
  // Read the Application state, 
  // check if the currently launching Activity is the right one, 
  // if not, start the last Activity and finish the current one.
}

@Override
public onDestroy(...) {
  // Store the current Activity ID in the SharedPreferences
}
...
}

注意在所有Activites中调用super.onDestroy和super.onCreate方法(就像你应该做的那样)。

快乐编码,玩得开心!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM