【问题标题】:How to save my data when I leave an android application离开安卓应用程序时如何保存我的数据
【发布时间】:2016-04-28 22:00:27
【问题描述】:

我知道如何使用 OnPause 和 OnResume 保存和恢复应用程序。当用户按下返回按钮、转动平板电脑和按下主页按钮时,我都会这样做。 但我的问题是当用户关闭应用程序时我不知道如何做同样的事情。

所以我想知道如何将我的应用程序恢复到相同的状态,即用户关闭应用程序时的状态?我在什么时候保存状态?

非常感谢您的帮助!

【问题讨论】:

    标签: android save onresume onpause


    【解决方案1】:

    您可以使用的最简单的数据存储是SharedPreferences

    您可以在此处找到一些示例:

    https://developer.android.com/guide/topics/data/data-storage.html#pref

    Android Shared preferences example

    【讨论】:

    • 感谢您的回答!你确定我可以关闭应用程序或手机并使用 SharedPreferences 找回我的相同状态吗?
    • 是的,我完全确定。此数据将在用户会话中持续存在(即使您的应用程序被终止)。
    • 好的,我会尝试这种方式。你能告诉我为什么我应该使用 SharedPreferences 而不是 onDestroy(来自另一个答案):我没有看到差异......(有很多方法可以做,我已经消除了 onsavedinstance 因为我有很多数据,但我现在发现了另外两种方法)
    • onResume、OnPause、onDestroy、onsavedinstance 只是活动生命周期的一种方法。因此,当您的活动在内存中时,您可以使用这些方法。一旦您的应用程序被终止并且您的活动将完成,所有数据都将丢失。所以你需要一些存储来保存数据。 SharedPreferences 只是一个。
    【解决方案2】:

    Android Activity 在被销毁之前调用 onDestroy() 方法。您可以在那里实现保存状态的逻辑。 检查活动生命周期以了解更多信息。 http://developer.android.com/training/basics/activity-lifecycle/index.html

    【讨论】:

    • 谢谢。我在某处看到了这种方法,但我的问题是我不知道如何恢复状态(由 onDestroy 保存)?我只是复制我的代码以从 OnPause 保存到 onDestroy:保存状态没有什么可做的了吗?
    • 你可以标记你的类Serializable,然后使用java的序列化技术来保存和检索对象的状态。
    • 这个我不知道,我会学习序列化的。感谢您的帮助!
    • 博格丹·乌斯季亚克是对的。 onDestroy() 方法只是通知您活动正在被销毁。您将需要使用 SharedPreferences 或 java 的序列化来保存对象的状态。
    猜你喜欢
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多