0

私のアプリは、呼び出し元といくつかの定義済みの値に応じてさまざまなアクションを実行します。呼び出しが鳴り始めたら、データベースからそれらの設定を読み取って表示するために、できるだけ速くする必要があります。BroadcastReceiverに静的変数を入れようとしましたが、サービスにも入れようとしましたが、すべての値が消えて失われているようです。それらをデータベースから再度読み取ると、情報を表示するのに時間がかかりすぎます。それで、情報を永続化できるように、メモリの一部を尊重するように Android に指示する方法はありますか?

ありがとう

編集: SharedPreferences からの読み取りは、小さなデータベースからの読み取りよりも高速ですか?

4

3 に答える 3

1

SharedPreferences を使用すると、ユーザーがアプリケーションを再インストールする (データをクリアする) まで、値を永久に保存するアプリケーションのプライベートな部分のようなものになります。共有設定は次のように機能します

// save string in sharedPreferences
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                    SharedPreferences.Editor editor = settings.edit();
                    editor.putString("some_key", string); // here string is the value you want to save
                    editor.commit();                    

// restore string in sharedPreferences 
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
string = settings.getString("some_key", "");

明らかに、文字列の代わりに int boolean などを保存できます

于 2013-04-05T15:10:47.493 に答える
0

いいえ。Android に RAM メモリを保持するように指示する方法はありません。VM がシャットダウンされると、RAM メモリは常に失われます。

Android 開発者サイトには、永続的なストレージのオプションとアプローチに関する良い議論がありますhttp://developer.android.com/guide/topics/data/data-storage.html

しかし、簡単な答えは次のとおりです。-データのタイプと量に応じて、おそらくSharedPreferencesまたはデータベース(SQLite)を使用したいと思うでしょう

于 2013-04-05T15:13:23.873 に答える
-1

Android 共有設定を使用できます。 http://developer.android.com/reference/android/content/SharedPreferences.html

この投稿の答えは、そのための非常に優れたソリューションです。 Android 共有設定

于 2013-04-05T15:09:05.920 に答える