Android数据丢失

时间:2013-06-06 07:29:46

标签: android

我的自定义类持有一些数据时遇到问题。那个类是单身人士我有很多变量拿着我的数据。

但是在一些小时后可能是2或3我得到空变量没有值。

为什么会这样?

如果是由于android默认内存管理那么如何解决这个问题呢?

我有许多后台任务,当变量为空时,这取决于单例变量,然后我的应用程序的所有功能都丢失了。

1 个答案:

答案 0 :(得分:4)

由于以下任何原因,Android可能会随时终止您的应用: -

  1. 应用程序在后台运行,android需要一些内存用于正面运行的应用程序。
  2. 一些任务杀手杀了App。
  3. 您从“管理应用程序”屏幕中删除了该应用程序。
  4. Android操作系统关机或重启。
  5. 现在要解决这个问题,您可以使用以下方法,最好的方法取决于您的要求: -

    1. 如果您的singelton类有一些您需要经常运行的线程,那么您可以将此类设为Service并使用START_STICKY属性,您的应用将不太可能被Android杀死,请参阅此处tutorial
    2. 如果变量数量有限,您可以使用SharedPreferences,在App的OnCreate()/ OnResume中,您可以获取这些值,请参阅similar question
    3. 如果您拥有相当多的变量,那么将值存储在XML file<variable name>value</variable name>中会非常棒,而Android提供了一种读取/写入XML文件的绝佳机制,请参阅{{3} }和example here详细教程。
    4. 您还可以将数据存储在数据库中,并在应用程序启动时将其读回,请参阅此this
    5. 这些方法不是互斥的,您可以使用它们的任意组合,在我的应用程序中我使用前三个。但是,我还建议您检查应用程序的内存使用情况,以便我们知道此行为的确切原因。如果您的应用程序在具有用户焦点(在前面运行)时被杀死,而不是需要担心的事情。出于参考目的,请参阅以下类似问题,

      tutorial

      Similar Question

      Another Similar Question