@r1k0 就在这里。将数据存储在类的静态字段中不会在应用程序进程终止和重新启动时自行保留。Android 在需要内存时会定期终止进程(正在运行的应用程序)。
根据 Android 文档:活动状态和从内存中弹出,
系统从不直接终止活动。相反,它会杀死活动运行的进程,不仅会破坏活动,还会破坏进程中运行的所有其他内容。
您可以使用以下方法保存和恢复基元以及 Serializable 和 Parcelable 对象的状态。这些是在正常活动生命周期中自动调用的。
protected void onSaveInstanceState(Bundle state) {}
protected void onRestoreInstanceState(Bundle savedInstanceState){}
所以,如果你有一个只有静态变量的类,你可以在 onSaveInstanceState() 中保存每个字段的状态,并在 onRestoreInstanceState() 中恢复它们。当 Android 杀死你的应用程序正在运行的进程时,你的变量的状态将被保存,当 Android 恢复你的应用程序时,这些值将在内存中恢复为与以前相同的状态。