当我的应用程序进入后台时,我遇到静态数据实例丢失的问题,从而导致空指针异常错误。
静态数据非常依赖于上下文或“状态”,并且通常不能在初始化时生成。
为了确保我保留这些数据,我是否会被迫将数据写入存储,或者是否有其他方法来确保我的静态数据在应用程序放入后台时不会丢失?
静态字段是类的一部分,而不是对象。当 Android 回收内存时,静态字段也会被回收,并且您将丢失其中保存的所有数据。请记住,操作系统可以随时为处于后台的应用程序回收内存。
如果您希望保留状态,则需要将其持久保存到磁盘,在 Android 上,依赖于后台保存在内存中的任何内容是一种危险的策略。
我会为此使用共享首选项,但如果您愿意,也可以使用序列化文件流。共享偏好更加容易并且有详细记录。
在 onResume() 方法中,您将读回这些值,并且当然会将它们保留在 onPause() 中。这还允许您处理诸如接到电话或用户切换到不同应用程序的情况,即使只是一小会儿。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)