丢失对 Android Studio 中静态数据的引用



当我的应用程序进入后台时,我遇到了静态数据丢失实例的问题,从而导致空指针异常错误。

静态数据非常依赖于上下文或"状态",并且不能在初始化时生成。

为了确保我保留这些数据,我是否会被迫将数据写入存储,或者有其他方法可以确保我的静态数据在应用程序进入后台时不会丢失?

静态字段是类的一部分,而不是对象。当Android回收内存时,静态字段也会被回收,您将丢失其中保存的所有数据。 请记住,操作系统可以随时在应用程序处于后台时回收内存。

如果您有希望保留的状态,则需要将其保存到磁盘,在Android上,依靠后台内存中保存的任何内容都是冒险的策略。

我会为此使用共享首选项,但如果您愿意,您也可以使用序列化文件流。共享首选项更容易且有据可查。

在你的onResume()方法中,你会读回这些值,当然你会把它们持久化在onPause()中。 这还将允许您处理以下情况:例如,接到电话或用户切换到其他应用程序的情况,即使只是片刻。

当你的应用在后台并且操作系统决定要回收内存时,它可能会终止该进程。在这种情况下,当您返回到应用程序时,将重新创建进程,并且您的静态变量将未初始化。

如果要保留重要内容,请根据需要将它们放入SharedPreferences数据库中,或将它们序列化为文件。

相关内容

  • 没有找到相关文章

最新更新