詳細な使用方法SharedPreferences

SharedPreferencesAndroid軽量なストレージ・クラスのプラットフォームは簡単にデータを格納するために、使用することは非常にシンプルで私たちを提供し、ソフトウェアの設定パラメータを格納するために特に適したデータを読み込みます。:できるだけのような単純なデータ型、保存SharedPreferences Stringintというように。データの一般的に複雑なタイプだろうBase64エンコードさは、文字列の形式で格納されています。SharedPreferences後ろにあるxmlファイルはに格納され、データファイルを格納する/data/data/<package name>/shared_prefsディレクトリ。
使用すると、SharedPreferences保存されkey-value、次のように手順は、次のとおりです。

  1. 使用ActivityクラスgetSharedPreferences得るための方法をSharedPreferences対象に、前記格納されたkey-valueからファイル名をgetSharedPreferences指定する最初の引数。
  2. 使用するSharedPreferencesインターフェイスをedit取得するためにSharedPreferences.Editorオブジェクトを。
  3. スルーSharedPreferences.EditorインターフェースputXxx格納する方法key-valueペアXxx異なるタイプのデータを表しています。たとえば、次の文字列型valueで必要とされるputString方法。
  4. することによりSharedPreferences.Editor、インタフェースcommit保存方法key-value右、commit方法は、運用データベースのトランザクションを提出することと同じです。

使用して、SharedPreferences保存されkey-value、次のコードのために:

SharedPreferences sharedPreferences = getSharedPreferences("test", Context.MODE_PRIVATE);

Editor editor = sharedPreferences.edit();//获取编辑器

editor.putString("name", "小明");

editor.putInt("age", 24);

editor.commit();//提交修改

生成されたtest.xml次のようにコンテンツファイルを:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
   <string name="name">小明</string>
   <int name="age" value="24" />
</map>

使用するSharedPreferencesコードは次のようにしている読み出しデータを:

SharedPreferences sharedPreferences= getSharedPreferences("test",   
Activity.MODE_PRIVATE);   
// 使用getString方法获得value,注意第2个参数是value的默认值   
String name =sharedPreferences.getString("name", "");   
int age =sharedPreferences.getInt("age", 0);   

SharedPreferences4つの動作モード:

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.

使用すると、SharedPreferences他のアプリケーションで読み取るPreference
他のアプリケーションで読み取るPreference前提条件は次のとおりです。preference時間が作成され、指定Context.MODE_WORLD_READABLEまたはContext.MODE_WORLD_WRITEABLE許可。
たとえば:そこ<package name>com.xiuxiuing.test次のステートメントを使用して作成したアプリケーションpreference

getSharedPreferences("test", Context.MODE_WORLD_READABLE);

私たちは、上記のアプリケーションにアクセスできるようにするpreference、あなたの最初の上記のアプリケーションを作成する必要がありますContext、その後、Contextアクセスpreference、アクセスをpreferenceアプリケーションがパッケージの下に配置されたときにshared_prefsディレクトリを見つけるために、preference以下のように、:

Context context = createPackageContext("com.xiuxiuing.test", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = context.getSharedPreferences("test", Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 0);

説明:
SharedPreferences.Editor存在するapplycommitデータ編集を提出するための二つの方法、これらの2つの方法の違いは、次のとおりです。

  1. applyなし戻り値とcommit戻りboolean提出が正常に変更があるかどうかを示します

  2. applyデータアトミック真に非同期ハードウェアディスクに提出した後、メモリにコミット、およびを変更することであり、commitそれゆえ、複数の同時提出で、ディスクのハードウェア同期にコミットされcommit、彼らは待機を扱っているときcommitの操作でディスクに保存され、それによって効率を低下させます。そして、applyちょうど呼び出しが続く原子のコンテンツを、提出することはapply、それによってある程度効率の多くを改善し、メモリデータの前面を覆って直接動作します。

  3. applyこの方法は、任意のプロンプト失敗を要求しません。

プロセス、以来sharedPreference、著者の結果は気にしない場合は、単一インスタンス、一般的にそれが使用することをお勧めし、同時実行の競合を表示されませんapply、もちろん、成功の提出と追従動作を確保する必要性は、それが使用する必要がありますcommit

公衆への個人的な歓迎の注意いいえ

公開された115元の記事 ウォン称賛67 ビュー10万+

おすすめ

転載: blog.csdn.net/meifannao789456/article/details/100079205