アプリにデータを保存するために、いくつかの SharedPreferences を使用しています。一部の設定は、多くのアクティビティで使用されます。
SharedPreferences は、高速読み取りアクセス用のマップによって内部的にバックアップされ、設定が変更されたときに SD カードに書き込まれることを知っています。
共有設定が多くのアクティビティからアクセスされる場合、どの方法が良いのだろうか。
- アクティビティ コンテキストを使用して、すべてのアクティビティでインスタンス化します。
- すべてのアクティビティでインスタンス化しますが、アプリケーション コンテキストを使用します。
- たとえば Application クラスに入れ、シングルトンと同様に一度だけインスタンス化します。
1.ソリューションを使用する場合、すべてのアクティビティにsharedpreferenceオブジェクトがありますか? また、アクティビティが破棄されると、sharedpreference の内部マップは破棄されますか?
2. ソリューションを使用すると、すべてのアクティビティで getSharedPreferences を呼び出しますが、インスタンスは 1 つだけになりますか? また、アプリケーションが動作している限り、内部マップはメモリ内に保持されますか?
うまくいけば、Androidが内部でどのように処理するかを知っている人がいます。