25

アプリが初めて実行されたかどうかを認識するためのフラグを保存したい。この単純な仕事では、データベースを作成したくありません..

これを行う簡単なオプションはありますか?ちょっとした情報だけを保存して読みたい。

4

6 に答える 6

55

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();
于 2013-03-13T12:19:03.290 に答える
32

を使用しSharedPreferencesます。

SharedPreferences preferences = getSharedPreferences("prefName", MODE_PRIVATE);
SharedPreferences.Editor edit= preferences.edit();

edit.putBoolean("isFirstRun", false);
edit.commit();
于 2013-03-13T12:21:15.643 に答える
10

これを行う適切な方法は、このようなことに使用される 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、新しいものを作成します。このようなその他の動作については、こちらを参照してください。

apply() 対 commit()

editor.apply()と同様に使用できます。唯一の違いは、編集が成功したかどうかにかかわらずeditor.commit()、apply() が値を返さないことです。booleanしたがって、editor.apply() はより高速で、より一般的に使用されます。

MODE_PRIVATEとは

ここでさまざまなモードについてすべて見ることができます。あなたの場合MODE_PRIVATEは大丈夫です。

設定の取得

SharedPreferences settings = getSharedPreferences(NAME_OF_PREFERENCES, MODE_PRIVATE);
boolean silent = settings.getBoolean("silentMode", false);

オブジェクトから設定を取得するSharedPreferencesときは、設定が見つからなかったときに返されるデフォルト値を常に指定する必要があります。この場合はfalse.

于 2015-05-02T12:26:20.577 に答える
4

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);
于 2013-03-13T12:20:21.290 に答える
2

static変数をグローバルに使用するのはどうですか?

このチュートリアルで指定されているようにこれを行うことができます。いくつかのフラグを保持するためだけに、コンテンツ プロバイダーの処理が不要であることはわかっています。

それ以外の場合は、Android によって提供されるShared Preferencesを確認できます。始めるための良い例を次に示します。

これは私のお勧めです。

于 2013-03-13T12:20:32.570 に答える