[Android] データを保存し Android Studio で確認 SharedPreferences

cat28 - [Android] データを保存し Android Studio で確認 SharedPreferences
アプリで使うちょっとしたデータを保存したい場合に SharedPreferences を使うと簡単にできます。但し、データが多くなるような場合は データベースを使うことが推奨されています。単純な初期化のための環境変数などの用途ということでしょう。

Android Studio 3.4.2
API 29
AndroidX



SharedPreferences

 
このSharedPreferencesは「共有の環境設定」という日本語訳がされています。

Ref: ストレージ オプション | Android Developers
 
後で出てきますが、SharedPreferencesの実体はxmlファイルです。アプリ内のメモリにxmlファイルでの書き込み、読出しをする訳なので、大量のデータのやり取り、プロセスをまたがったデータ取得は問題が起きる可能性があるようです。
簡単な初期起動が済んだかどうか、true/false 程度のデータを保存するためには手軽です。
 

 

SharedPreferences, Editor, MODE の設定

 
書込ケースでは

  1. SharedPreferences のインスタンス生成
  2. edit() を呼び出して SharedPreferences.Editor を取得
  3. putString() などのメソッドを使用して値を追加
  4. apply()あるいはcommit() を使用して新しい値を書き込む

String 書込む場合のコード

 
書き込み方法にはapply()とcommit()があります。applyは非同期でcommit()は同期した処理ですから直ぐに書き込む必要性がない場合はapply()がいいようです。
apply()によると、非同期でよければこちらを使った方がいいが、問題がある場合はcommit()を使うというケースバイケースのようです。複数の書き込みが別スレッドで起きるような場合は注意しないといけません。

この例は、DataStore という名前で定義して、MODE_PRIVATE のモードで Key が input, value が例えば「abcdefg」を保存するケースです。モードは他にMODE_APPENDがあります。

  1. MODE_PRIVATE
    • このアプリからのみ読み書き可
  2. MODE_APPEND
    • 追加で書き込み
  3. MODE_MULTI_PROCESS
    • Serviceで書きこんだデータをActivityで読み出す場合はこれが有効
      残念ながらAndroid6.0で非推奨になりました

String, Int, Boolean, Long, Float の保存と読み出しの例です。
 

 

 

サンプルコード

 
書き込みと読み出しができているか確認してみましょう。

sharedpreference 02 - [Android] データを保存し Android Studio で確認 SharedPreferences

Projectに入れてまとめると
MainActivity.java

 
activity_main.xml

 
リソースです
strings.xml

 

 

 

Device File Explorer で確認

 
Android Studio で保存したデータを確認します
(注)昔はADMといっていました、その前はDDMSとも呼ばれているものです。

 
Device File Explorerから /data/data/ 以下にパッケージ名があるのでそれを選択
その下の、Shared_pref フォルダーに設定した名前のxmlがあります。(DataStore.xml)

クリックするとxmlファイルだと言う事がわかります。
 
sharedpreference 03 - [Android] データを保存し Android Studio で確認 SharedPreferences
 
テストで設定した「test」が”input”のvalueとなっています。
 

 
こんな風になっているのでした。
 

 
他にもコマンドの run-as を使って調べることもできます。
 

 
 
関連記事:

 
Kotlin:

SharedPreferences を使ってアプリの最初の起動時にのみデータをダウンロードさせるためのフラグを保存させたりということが簡単に...

References:
ストレージ オプション | Android Developers
SharedPreferences | Android Developers
apply()

誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加




アプリ開発が上達するお勧め

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンラインのプログラミングスクールがいいでしょう、時間の制約がないところが一番の魅力です。

以下の3つはAndroidが学習できるオンラインスクールです。


TECH ACADEMY
Androidアプリコース



侍エンジニア塾
侍エンジニア塾 無料体験レッスン



CodeCamp
~約8,000名の受講生と80社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp





正直ネットや本では限界があります。直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。

尚、スクールがダメだと言う人がいますが、やる気があれば問題ありません。与えられるのを待っていてはいけないですね
欲しいものは取りに行くのです。


Google Pixel 3 XLグローバル版
SIMフリー 並行輸入品
6.3インチの大画面
背景をぼかすポートレートモード撮影


Anker PowerCore II Slim 10000
Power IQ 2.0搭載
iPhone & Android対応

シェアする

  • このエントリーをはてなブックマークに追加

フォローする