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