29

いくつかのアプリケーションメタデータをに保持していますSharedPreferences。アプリケーションをアンインストールして再インストールするたびに、SharedPreferencesが削除されます。

ユーザーがアンインストールして再インストールした場合に古いデータを復元できるように、それを維持する方法はありますか?

4

8 に答える 8

24

Android 6.0 以降、以下を使用できます。

<application
        android:allowBackup="true">

true に設定すると、データ (sharedprefs など) が Google クラウドに保存され、次回アプリをインストールしたときに復元されます。詳細については、こちらをご覧ください。6.0 以降、デフォルト設定はtrueであることに注意してください。

于 2016-04-07T08:51:31.267 に答える
21

アプリにを追加する必要がありBackupAgentHelperます。とともに、をクラウドSharedPreferenceBackupHelperにバックアップします (デバイスがサポートしている場合)。SharedPreferencesアプリを再インストールすると、データが復元されます。

見る:

BackupAgentHelper

SharedPreferenceHelper (実装に必要なすべてのコードが含まれています)

一般的なバックアップ ガイド

于 2012-03-22T02:31:34.620 に答える
3

SharedPreferencesアプリと一緒に常に削除されていると確信しています。私の意見では、これを行う最善の方法は、隠しファイル (「.nameOfFile」のようなもの) を SD カードまたは内部メモリに書き込み、それにも設定を含めることです。

ただし、SharedPreferences を使用する必要があります。これは、設定管理の Android 標準です。アプリを初めてロードするときに、最後に開いたときに作成された隠しファイルがないか SDCard をチェックするようにすることができます。ファイルが存在する場合は、それらの入力を読み取って SharedPreferences に保存します。存在しない場合は、ユーザーがファイルを削除したか、ユーザーが以前にアプリをインストールしたことがありません。

これは 1 つの方法にすぎず、最も効率的ではないかもしれませんが、お役に立てば幸いです。

于 2012-03-22T01:51:19.143 に答える
2

これを行う 1 つの方法は、ユーザー データをサーバーに保存することです。次に、ユーザーがアプリを再インストールするか、別のデバイスにアプリをインストールすると、ユーザー データを「同期」できます。これはデータの小さな HTTP ダウンロードであり、JSON に保存されている可能性が高く、それを解析して SharedPreferences に書き込みます。

独自のサーバーを維持したくない場合は、Dropbox などのクラウド サービスを使用できます。これがアプリ 1Password Reader の仕組みです。

于 2012-03-22T02:01:43.660 に答える
2

edthe third が言ったように: デバイスの外部ストレージに物理ファイルを配置し、インストール時にそれらを読み取るのが最適です。ファイルの内容をユーザーから隠す必要がある場合は、単純な暗号化/復号化プロセスを実行するだけです。

于 2012-07-17T09:19:52.447 に答える
1

アンインストールすると、sharedPrefs と DB が削除されます。アプリの外部で記述する必要があります (たとえば、sd)。

于 2012-03-22T01:55:48.960 に答える
1

これは実際には組み込まれており、有効にするにはいくつかのクラスを実装する必要があります。データはバックアップされ、ユーザーのGoogleアカウントにリンクされるため、新しいデバイスにアプリをインストールしたり、再インストールしたりすると、自動的に復元されます.

http://developer.android.com/guide/topics/data/backup.html

于 2012-03-22T02:30:07.093 に答える