当Android在后台被杀死后重新启动应用程序时

时间:2012-12-21 04:44:23

标签: android android-activity

最近我遇到了一个很难理清的问题。

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

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

处理这种情况的理想方法是什么?感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

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

  1. ContentProvider& ContentResolverBasic Overview。除非您打算让其他应用程序可以访问数据,否则我不建议这样做。
  2. SQLite。如果您具有预先存在的SQL知识或需要关系数据库的大量数据,那就太好了。
  3. SharedPreferences。顾名思义通常用于存储用户状态数据,但它也可用于存储任何数据。如果需要存储很多或复杂的数据,我不建议使用它。
  4. File。好的旧java文件类,无需解释。
  5. 使用我们的数据,我建议创建一个DataStore管理类来处理上述任何方法的io,因此在引用数据时,您只需从该类中提取数据。

答案 1 :(得分:0)