何时保存Android应用程序级数据(不是活动数据)

时间:2017-03-09 22:18:40

标签: android savestate

我的Android应用程序将大量数据存储在最初从数据库中读取的内存中。从数据库读取这些数据到内存需要一段时间,我想在程序运行之间将这些数据序列化并缓存到一个文件中,这样我就不必每次都从数据库中读取它,希望加速通过消除数据库开销来启动应用程序。

此数据存储在Application类的成员中,而不是存储在我的主要活动中。如果我理解正确,当我的主要活动被销毁并重新创建(例如屏幕旋转)时,Application类可能会持久存在。这很好。但是,我需要知道什么时候应用程序本身即将被销毁(因此我将丢失存储在Application类中的数据),这样我就可以在它发生之前将其缓存到文件中。

我不想使用我的主要活动的onSaveInstanceState,因为这会导致缓存比必要更频繁地发生(我不想做,因为它可能是一个有点昂贵的操作)。

我是否可以覆盖Application类的方法来处理它?<​​/ p>

如果没有,还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

将数据保存在内存中并使用它以获得最大响应速度。 更新UI并将数据保存在数据库中。如果在保存新数据时发生错误,请通知UI。 这样您就不必担心Application实例何时被销毁。