0

最近我遇到了一个很难解决的问题。

我有一个 Activity A,它有一个带有片段的视图寻呼机。我正在从服务器加载数据并输入视图。从服务器接收到的数据存储在可以跨应用程序访问的单例类中。现在用户通过单例类移动到另一个使用服务器数据的活动 B。

现在,当用户按下主页并启动各种应用程序时,我的应用程序在后台被杀死。当我重新启动应用程序时,操作系统尝试使用其保存的状态再次加载活动 B(我在 onSaveInstance 中没有做任何事情),但单例类中的数据已经丢失并且应用程序崩溃。问题是我无法在此活动中再次获取服务器数据。我应该将整个数据保存在此活动的 onSaveInstance 中吗?不鼓励使用单例类来存储所有数据吗?

处理这种情况的理想方法是什么?任何帮助表示赞赏。

4

2 回答 2

0

数据有多敏感?在 Android 中,不建议使用骨架来移动数据(通过意图传递它?静态(请拒绝))。有人评论以太方式,您可能应该将数据存储到主存储器。除了实际将其写入文件之外,Android 还提供了一些选项。根据数据量及其结构,有几个选项。

  1. ContentProvider & ContentResolver基本概述。除非您计划让其他应用程序可以访问数据,否则我不建议这样做。
  2. SQLite。如果您有预先存在的 sql 知识或需要关系数据库的大量数据,那就太好了。
  3. 共享首选项。顾名思义,它通常用于存储用户状态数据,但也可以用于存储任何数据。我不建议在需要存储大量或复杂数据的情况下使用它。
  4. 文件. 好旧的 java 文件类,不需要解释。

对于我们的数据,我建议创建一个 DataStore 管理类来处理上述任何方法的 io,因此在引用数据时,您只需从该类中提取。

于 2012-12-21T05:03:20.297 回答
0

为避免此类情况,您应该与以下内容相关:

于 2014-04-08T19:53:40.233 回答