如何使用Android应用程序类来保存数据?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (25)

我正在研究一个相当复杂的Android应用程序,它需要大量有关应用程序的数据(我认为总共大约500KB--对于移动设备来说这很大?。从我所知道的情况来看,应用程序中的任何方向更改会导致活动的完全销毁和重新创建。根据我的发现,Application类没有相同的生命周期。将状态信息存储在应用程序类中,然后从Activity中引用它是否有意义,或者由于移动设备上的内存限制,通常不是“可接受的”方法?

提问于
用户回答回答于

你所描述的正是我如何处理我在活动中丢失数据的问题。我在Application类中创建了一个全局单例,并能够从我使用的活动中访问它。

如果将被大量使用,你可以在Global Singleton中传递数据:

public class YourApplication extends Application 
{     
     public SomeDataClass data = new SomeDataClass();
}

然后通过以下任何活动来调用它:

YourApplication appState = ((YourApplication)this.getApplication());
appState.data.UseAGetterOrSetterHere(); // Do whatever you need to with the data here.
用户回答回答于

那些依靠Application实例的人是错误的。起初,Application只要整个应用程序存在,似乎就好像存在,但这是不正确的假设。

操作系统可能会根据需要终止进程。所有过程分为文档中指定的 5个“可爆性”级别。

我认为更好的方法是将数据保存到内部存储文件,然后在活动恢复时读取它。

扫码关注云+社区