我需要能够从扩展一系列类型的许多不同类的整个应用程序中访问共享首选项对象。
目前我一直在通过在应用程序的启动活动中创建一个静态变量来做到这一点。
...
public static SharedPreferences sharedpreferences;
SharedPreferences.Editor editor;
public void onCreate(Bundle savedInstanceState) {
sharedpreferences = getSharedPreferences("PrefFile", MODE_PRIVATE);
editor = sharedpreferences.edit();
...
}
...
然后从另一个类中我通过以下方式访问它:StartActivity.sharedpreferences
在大多数情况下,这可以正常工作,但是如果应用程序仍然在后台运行并且用户返回应用程序以便它返回到最后一个活动并且不重新运行启动活动,StartActivity.sharedpreferences
则现在为 null 并且因此,如果我尝试访问它,则会引发 NullPointerExecption。
我将如何允许多个类访问相同的共享首选项变量而不使其变为 Null