【问题标题】:Saving Android application state保存 Android 应用程序状态
【发布时间】:2010-01-11 17:37:28
【问题描述】:

我了解如何使用 SharedPreferences、onSavedInstanceState() 和 onRestoreInstanceState() 等来保存应用程序的状态,如类似帖子 (Saving Android Activity state using Save Instance State) 中所述,但是如何保存最后一个活动?

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

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

【问题讨论】:

    标签: java android


    【解决方案1】:

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

    【讨论】:

    • 我认为你是对的 Jay,我查看了清单文件并注意到我的主要活动下有以下内容:该属性的文档说:“该活动可以是任务的初始活动,并列在顶级应用程序启动器中。”删除这一行就可以了,谢谢!
    • 但是如果你删除LAUNCHER 类别,你会不会失去启动应用程序的能力? :)
    • 删除 LAUNCHER 不起作用,它显示我找不到活动警报
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      为了获得您所描述的内容,我将编写一个自定义父活动并覆盖正确的生命周期方法来存储您的应用程序状态并读取它并采取相应的行动。然后让你所有的activity都继承自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
      }
      ...
      }
      

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

      快乐编码,玩得开心!

      【讨论】:

      • 但是在你写的每个Activity中,要保存的状态肯定会不同,所以不需要自定义父类吗?此外,您应该只使用链接到的问题 jylc08 中显示的技术,因为 onDestroy 仅在您 finish() 一个活动(或系统杀死它)时被调用。同样,onCreate 仅在 Activity 尚未在任务堆栈中时调用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2013-02-24
      • 2016-04-09
      • 1970-01-01
      • 2012-01-28
      相关资源
      最近更新 更多