一部のアプリケーションメタデータをSharedPreferences
に保持しています。アプリケーションをアンインストールして再インストールするたびに、SharedPreferences
が削除されます。
ユーザーがアンインストールして再インストールした場合に古いデータを復元できるように、それを維持する方法はありますか?
アプリにBackupAgentHelper
を追加する必要があります。 SharedPreferenceBackupHelper
と一緒に、SharedPreferences
をクラウドにバックアップします(デバイスがサポートしている場合)。アプリを再インストールすると、データが復元されます。
見る:
Android 6.0以降、次のものを使用できるようになりました。
<application
Android:allowBackup="true">
Trueに設定すると、データ(sharedprefsなど)がGoogleクラウドに保存され、次にアプリをインストールしたときに復元されます。あなたはそれについてもっと読むことができます ここ 。 6.0以降、default設定はtrueであることに注意してください。
SharedPreferences
はアプリと一緒に常に削除されると確信しています。私の意見では、これを行う最良の方法は、隠しファイル( ".nameOfFile"など)をSDカードまたは内部メモリに書き込み、そのファイルに設定も含めることです。
ただし、SharedPreferencesを使用する必要があります。これは、設定管理のAndroid標準です。アプリを初めてロードするときに、最後に作成された隠しファイルがないかSDカードをチェックするようにすることができます。ファイルが存在する場合は、それらの入力を読み込み、SharedPreferencesに保存します。存在しない場合は、ユーザーがファイルを削除したか、ユーザーがアプリをインストールしたことがありません。
これはそれを行うための1つの方法にすぎず、最も効率的ではないかもしれませんが、それが役立つことを願っています!
Edthethirdが言ったように、デバイスの外部ストレージに物理ファイルを置き、インストール時にそれらを読み取るのが最善です。ファイルの内容をユーザーから隠す必要がある場合は、単純な暗号化/復号化プロセスを実行するだけです。
これを行う1つの方法は、ユーザーデータをサーバーに保存することです。その後、ユーザーがアプリを再インストールするか、別のデバイスにアプリをインストールすると、ユーザーデータを「同期」できます。これは、データの小さなHTTPダウンロードであり、JSONに保存されている可能性があり、解析してSharedPreferencesに書き込みます。
独自のサーバーを維持したくない場合は、Dropboxのようなクラウドサービスを使用できます。これがアプリ1PasswordReaderの仕組みです。
これは実際には組み込みであり、有効にするにはいくつかのクラスを実装する必要があります。データはバックアップされ、ユーザーのGoogleアカウントにリンクされるため、ユーザーが新しいデバイスにアプリをインストールしたり、再インストールしたりすると、データは自動的に復元されます。
アンインストールすると、sharedPrefsとDBが削除されます。アプリの外部(たとえば、sd)に書き込む必要があります。
2020年の時、私にはShared Storage
は行く方法です。
Androidのデータとファイルストレージの概要
https://developer.Android.com/training/data-storage
ドキュメントとファイルの共有ストレージ
https://developer.Android.com/training/data-storage/shared/documents-files