静态字段是类的一部分,而不是对象.当Android回收内存时,静态字段也将被回收,您将丢失其中的所有数据.请记住,操作系统可以在任何时候为应用程序在后台回收内存.
如果你有一个你希望保留的状态,你将需要将它保存到磁盘上,在Android上,依赖于在后台保存在内存中的任何东西都是一个冒险的策略.
我会为此使用共享首选项,但如果您愿意,也可以使用序列化文件流.共享偏好更容易且记录良好.
在你的onResume()方法中,你会回读这些值,你当然会将它们保存在onPause()中.这还可以让您处理例如电话呼入或用户切换到其他应用程序的情况,即使只是片刻.
当您的应用程序处于后台并且操作系统决定要回收内存时,它可能会终止该进程。在这种情况下,当您返回应用程序时,将重新创建该流程并且您的静态变量将未初始化。
如果你想保留重要的东西SharedPreferences,根据你的需要,把它们放在一个数据库中,或者将它们序列化到一个文件中。