2012-12-21 133 views
0

最近我遇到了一个非常难以理清的问题。当Android在后台遇难后重新启动应用程序

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

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

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

+0

你可以从那里保存在SQLite数据库中的数据和获取数据的特定记录 –

回答

0

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

  1. ContentProvider & ContentResolverBasic Overview。除非你打算让数据可以被其他应用程序访问,否则我不会推荐这个。
  2. SQLite。如果您有预先存在的SQL知识或需要关系数据库的大量数据,那么这很好。
  3. SharedPreferences。正如其名称所暗示的,通常用于存储用户存在数据,但它也可用于存储任何数据。如果需要存储大量或复杂的数据,我不会推荐它。
  4. File。很好的旧java文件类,不需要解释。

有了我们的数据,我会建议创建一个DataStore管理类,它可以处理上述任何一种方法的io,所以当引用数据时,您只需从该类中提取数据。

相关问题