共有設定の基本的なタスクは何ですか?
SharedPreferencesは基本的に、アプリケーションに永続データを保存する必要がある場合に使用されます。データベースが(サイズ/保存されるデータの純粋な目的のために)実際には必要ない場合に使用することを検討します。
実際に使用する際の注意点は?
アプリケーションがそのタスクを実行するために通常必要とするものは何でも保存できます。たとえば、ゲーム アプリケーションでは、ユーザーのスコアを保存できます。ただし、ルートSharedPreferences
化されたデバイスでは誰でもファイルにアクセスできるため、パスワードを保存する必要はありません。とにかくそれらを保存する必要がある場合は、独自のアルゴリズムを実装して暗号化する必要があります。私のアプリでは、Facebook と Twitter のユーザーのプロフィール写真への URL を保存しています。それはすでにパブリックドメインです。
それらをプログラムでコードに実装する適切な方法は何ですか?
たとえば、1 つまたは 2 つのアクティビティだけを使用する場合はSharedPreference
、次のようなものを使用して SharedPreference ファイルに値を追加します。
// THE SHAREDPREFERENCE INSTANCE
SharedPreferences sharedPrefs;
// THE EDITOR INSTANCE
Editor editor;
// A CONSTANT STRING TO PROVIDE A NAME TO THE SHAREDPREFERENCE FILE
private static final String PRIVATE_PREF = "some_file_name";
// INSTANTIATE THE SHAREDPREFERENCE INSTANCE
sharedPrefs = getApplicationContext().getSharedPreferences(PRIVATE_PREF, Context.MODE_PRIVATE);
// INSTANTIATE THE EDITOR INSTANCE
editor = sharedPrefs.edit();
// ADD VALUES TO THE PREFERENCES FILE
editor.putLong(UNIQUE_KEY_NAME, VALUE);
editor.putString(UNIQUE_KEY_NAME, VALUE);
editor.putString(UNIQUE_KEY_NAME, VALUE);
editor.putString(UNIQUE_KEY_NAME, VALUE);
// THIS STEP IS VERY IMPORTANT. THIS ENSURES THAT THE VALUES ADDED TO THE FILE WILL ACTUALLY PERSIST
// COMMIT THE ABOVE DATA TO THE PREFERENCE FILE
editor.commit();
ファイルから値を取得するには:
String someString = sharedPrefs.getString(UNIQUE_KEY_NAME, null);
long someLong = sharedPrefs.getLong(UNIQUE_KEY_NAME, 0);
ファイルの内容/値を再利用する必要がある場合SharedPreference
、これはヘルパー クラスを作成するための優れたチュートリアルです。このヘルパー クラスを使用すると、すべてActivites
の値に上記のコードをコーディングする代わりに、任意の数の値にアクセスできます: http:// megasnippets.com/source-codes/java/sharedpreferences_helper_class_android
最後に、使用後にそれらを削除する方法は?
// INSTANTIATE THE EDITOR INSTANCE
editor = sharedPrefs.edit();
// TO CLEAR A SELECT FEW OF THE VALUES:
editor.remove(KEY_FOR_THE_VALUE_TO_BE_REMOVED);
// ALTERNATIVELY, TO CLEAR ALL VALUES IN THE FILE:
editor.clear();
注:作成SharedPreferences
したファイルは、ユーザーがデバイスの設定からアプリ データを手動で消去すると削除されます。
さらに読むためのリンク:
- http://www.vogella.com/articles/AndroidFileBasedPersistence/article.html
- http://saigeethamn.blogspot.in/2009/10/shared-preferences-android-developer.html
- http://www.mybringback.com/tutorial-series/12260/android-sharedpreferences-example/
- http://www.androidhive.info/2012/08/android-session-management-using-shared-preferences/