お問い合わせTopモバイルトッププリファレンスプリファレンス■Androidのデータ保存方法Androidのデータ保存方法は以下の方法があります。●プリファレンスAndroidの内部記憶媒体にKey-Value形式でデータを記録する方法です。記録できるデータの形式やデータ量に制限があるので、アプリの設定値などの小規模な情報を記憶する際に使用します。●データファイル長文を保存してあるテキストデータや画像や音などのバイナリデータの保存もできます。サイズの大きなファイルを保存する際に使用します。●SQLite大量のデータを扱う際に使用する方法です。SQLiteはデータベースの一種で、サーバーではなくアプリ側にデータベースを組み込んで使用します。速度も中、小規模のデータ量なら遜色がありません。して以下の手順を実行して下さい。新規プロジェクト「DataSaveTest」をEmptyActivityで作成します。WorldのTextViewタグを削除します。Text」を追加します。※サイズが小さければ「横300」「縦50」で調整する3-2.テキスト追加Propertiesの「Text」欄に「入力欄」と設定します。4.ボタン追加4-1.ボタン追加プリファレンス用で使用するボタンを二つ追加します。4-2.ボタンテキスト変更ボタンのテキストを「プリ読み込み」「プリ書きこみ」に変更します。「プリ書きこみ」を「preWrite」に変更します。5.ボタンのクリック設定5-1.アクティビティにOnClickListenerの継承アクティビティにOnClickListenerを継承します。{5-2.onClickを定義onClickを定義します。v){}5-3.ボタン毎の分岐作成4と5のボタンで設定したボタンの処理を行えるようにonClick内に分岐処理を追加します。R.id.preWrite:break;}5-4.通知設定アクティビティにボタンがクリックされた通知が行くように設定を行います。onCreate関数内findViewById(R.id.preRead).setOnClickListener(this);findViewById(R.id.preWrite).setOnClickListener(this);■プリファレンスプリファレンス(Preference)はキーと値の組み合わせでデータを保存する方法です。データの実体はXML形式のテキストファイルとして保存されています。プリファレンスで使用できる型は以下の通りです。・boolean・float・int・long・String●プリファレンスのアクセス方法プリファレンスにアクセスするにはgetSharedPreferences()関数でSharedPreferencesオブジェクトを取得(作成)することで可能となります。該当名前のプリファレンスがなければ新規で作成されます。アクセスモードにはアプリのみアクセス可能なMODE_PRIVATE(新規作成)と追記モードのMODE_APPENDがあります。次に書き込みたい内容をEditorオブジェクトに追加していきます。最後に書きこみ内容を反映して終了です。取得したプリファレンスにデータを書き込むにはデータ書き込み用オブジェクトのEditorをプリファレンスから取得する必要があります。取得のための関数としてedit関数が用意されています。sp.edit();2.書き込みデータの書き込みはEditorオブジェクトのメンバ関数である「put~関数」を使用します。「~」の部分には設定できる型の名前を指定します。"テスト文字列");3.反映put~関数はあくまでデータをEditorに追加するだけです。最終的にSharedPreferencesを通してアプリに保存するためにはデータをアプリに反映するcommitまたはapply関数を使用する必要があります。引数:なし内容:editorに設定されているデータをアプリに保存します。commit関数は同期処理なので反映が完了しない限り処理を先に進めることができません。"テスト文字列");editor.commit();apply:戻り値:なし引数:なし内容:editorに設定されているデータをアプリに保存します。非同期にデータを反映するので終了を待たずに処理を先に進めることができます。"テスト文字列");editor.apply();・commitとapplyの違いcommitとapplyの1番の違いは同期か非同期かです。書き込みはデータをアプリに反映させるので処理コストが重めです。処理停止が起きないapplyを使用した反映方法を作成するほうがアプリとしては魅力的かと思います。読み込みは書き込みとは違い、SharedPreferencesから直接取得します。読み込みには書き込みのような反映処理はありません。1.読み込み読み込みたいデータの取得にはSharedPreferencesオブジェクトのメンバ関数である「get~関数」を使用します。書き込み関数の「put~」と同様に「get~」の「~」の部分は読み込みたいデータの型を記述します。内容:SharedPreferencesに設定してあるデータをキーワードを指定して取得します。該当するキーワードのデータが存在しない場合は第二引数で指定した値を返します。"エラー");■サンプルMainActivity.javaでonClick関数の実装とWrite、Read関数を追加しています。R.preWrite:Write();break;}}■ライフサイクルを利用アプリでデータの読み書きを必要とする処理の場所として「アプリ起動時」「アプリ再開時」「アプリ待機時」があります。「アプリ起動時」「アプリ再開時」では読み込みを「アプリ待機時」では書きこみを行うことで、アプリの状況に応じた情報を保存、再開することができます。以下の関数は各状況に応じたアプリ内で実行される関数です。●onCreate関数アプリ起動時に呼び出される関数です。●onResume関数アプリ再開時に呼び出される関数です。●onPause関数アプリ待機時に呼び出される関数です。アプリ終了時とアプリ待機時で行う処理は同じ処理を行うことが多く、データ保存のタイミングとして終了時より、待機する際のほうが適していることから待機状態遷移時に書きこみ処理を行います。探している内容が見つからなかったら以下のサイトにあるかもしれません。筆者が開発にかかわらせてもらったアプリのリンクです。