在我的主要活动中,我阅读了一些偏好
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
fontSize = settings.getFloat("textsize", (float) 20);
userName = settings.getString("userName","");
}
在其他各种子活动中,我像这样引用这些变量
body.setTextSize(Main.fontSize);
这在大多数情况下都可以正常工作。有时在应用程序运行一段时间后我重新启动它,所有配置变量似乎都是空的。调试时不稳定且难以重现。发生这种情况时,我可以通过所有旧屏幕反复回击,直到它退出,然后重新启动,并且首选项恢复并正常工作
我可以随机尝试将事物移动到不同的地方,例如 onStart() 或 onRestart(),但到目前为止还没有帮助。或者重做每个活动以在开始时重新读取共享首选项。但我更愿意了解导致此问题的错误的生命周期是什么。