アプリが初めて実行されたかどうかを認識するためのフラグを保存したい。この単純な仕事では、データベースを作成したくありません..
これを行う簡単なオプションはありますか?ちょっとした情報だけを保存して読みたい。
アプリが初めて実行されたかどうかを認識するためのフラグを保存したい。この単純な仕事では、データベースを作成したくありません..
これを行う簡単なオプションはありますか?ちょっとした情報だけを保存して読みたい。
sharedPreference
またはを使用files
してデータを保存しますが、より良いオプションはsharedPreference
です。
取り出し用
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
保存用
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", true);
editor.commit();
を使用しSharedPreferences
ます。
SharedPreferences preferences = getSharedPreferences("prefName", MODE_PRIVATE);
SharedPreferences.Editor edit= preferences.edit();
edit.putBoolean("isFirstRun", false);
edit.commit();
これを行う適切な方法は、このようなことに使用される Android クラスSharedPreferences
を使用することです。
SharedPreferences settings = getSharedPreferences(NAME_OF_PREFERENCES, MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("appPreviouslyStarted", true);
editor.apply();
適用することを忘れないでください。そうしないと、設定への変更が保存されません!
異なる を使用して、複数の設定を作成できますNAME_OF_PREFERENCES
。設定はデバイスに保存されるため、アプリケーションを閉じた後に使用できます。
まだ作成されていないものを取得しようとするとNAME_OF_PREFERENCES
、新しいものを作成します。このようなその他の動作については、こちらを参照してください。
editor.apply()
と同様に使用できます。唯一の違いは、編集が成功したかどうかにかかわらずeditor.commit()
、apply() が値を返さないことです。boolean
したがって、editor.apply() はより高速で、より一般的に使用されます。
ここでさまざまなモードについてすべて見ることができます。あなたの場合MODE_PRIVATE
は大丈夫です。
SharedPreferences settings = getSharedPreferences(NAME_OF_PREFERENCES, MODE_PRIVATE);
boolean silent = settings.getBoolean("silentMode", false);
オブジェクトから設定を取得するSharedPreferences
ときは、設定が見つからなかったときに返されるデフォルト値を常に指定する必要があります。この場合はfalse
.
SharedPreference永続ストレージを使用することをお勧めします。少量の情報を非常に簡単かつ迅速に保存/取得できます。
SharedPreference から値を取得するコードを参照してください
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
SharedPreference に値を格納する
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
static
変数をグローバルに使用するのはどうですか?
このチュートリアルで指定されているようにこれを行うことができます。いくつかのフラグを保持するためだけに、コンテンツ プロバイダーの処理が不要であることはわかっています。
それ以外の場合は、Android によって提供されるShared Preferencesを確認できます。始めるための良い例を次に示します。
これは私のお勧めです。