【问题标题】:My data gets null when app is relaunched after being at background for some time当应用程序在后台运行一段时间后重新启动时,我的数据变为空
【发布时间】:2021-06-11 16:25:54
【问题描述】:

我正在使用改造从 api 获取一些数据并使用实时数据来观察数据的变化,但是每当我按下主页按钮并开始使用不同的应用程序时,当我重新打开我的应用程序时,数据变为空并按下返回到上一个片段,它也需要从 api 获取数据,但它也没有获取,但是当我再次按下后退按钮时,它会进入主页并获取数据。我不知道为什么会发生这种情况以及它的解决方案是什么。

【问题讨论】:

  • 您应该注意,在最坏的情况下,任何应用程序/活动/服务都可能从系统中被杀死,特别是如果它在后台......所以返回“后台应用程序”可能需要完成重新初始化。 LiveDatas 一直存在,直到 Activity 被销毁,因此如果系统杀死了您的 Activity,那么它的 LiveDatas 也被杀死/释放。如何管理这取决于您的应用程序是如何构建的,您的片段如何管理其 onStop/onPause/onStart/onResume 事件以及您如何使用 LiveData 值.....

标签: java android android-studio retrofit android-livedata


【解决方案1】:

只需通过在onPauseonDestroy 方法覆盖中使用SharedPreferences 存储您的值来完全避免此问题。 这样,即使用户不小心清除了所有正在运行的应用程序,数据仍然会占上风。 这将为您的应用提供数据保留稳定性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    相关资源
    最近更新 更多