さまざまなタイプを拡張する多くの異なるクラスから、アプリ全体から共有設定オブジェクトにアクセスできる必要があります。
現在、アプリの開始アクティビティ内に静的変数を作成することでこれを行っています。
...
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になることなく、複数のクラスが同じ共有設定変数にアクセスできるようにするにはどうすればよいですか