実装
実装する前に、 Android Backup Serviceにアプリケーションを直接登録する必要があります。 登録時に取得したキーはマニフェストで使用されます。以下を参照してください。
BackupManagerと対話する最も簡単な方法は、BackupAgentHelperクラスを継承することです。
このクラスでは、2つのヘルパーを使用します。
- SharedPreferencesのバックアップ用のSharedPreferencesBackupHelper
- 内部ストレージからのバックアップファイル用のFileBackupHelper 。
public class TheBackupAgent extends BackupAgentHelper { @Override public void onCreate() { // DatabaseHelper.DATABASE_NAME – . FileBackupHelper fileBackupHelper = new FileBackupHelper(this, "../databases/" + DatabaseHelper.DATABASE_NAME); addHelper(DatabaseHelper.DATABASE_NAME, fileBackupHelper); // , , . , PreferenceManager(PreferenceManager.getDefaultSharedPreferences(context)) SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, SharedPreferenceHelper.PREFERENCES, getPackageName() + "_preferences"); addHelper("prefs", helper); } // . , . public static void requestBackup(Context context) { BackupManager bm = new BackupManager(context); bm.dataChanged(); } }
びっくりするでしょうが、原理的にはこれですべてです。 最後に、マニフェスト内のバックアップエージェントクラスへのパスと、話す名前を持つ追加の属性を指定します。 また、アプリケーションの登録時に取得したキーは、メタデータに登録されます。
<application android:name=". MyApplication " android:allowBackup="true" android:restoreAnyVersion="true" android:backupAgent=".util.TheBackupAgent" <meta-data android:name="com.google.android.backup.api_key" android:value="AEdPqrEAAAAIDaYEVgU6DJnyJdBmU7KLH3kszDXLv_4DIsEIyQ" /> </application>
Androidにはアプリケーションの停止を決定するための美しいソリューションがないため、怠zyな方法の1つとして、アプリケーションの開始時にバックアップを要求することを提案します。
public class MyApplication extends Application { @Override public void onCreate() { TheBackupAgent.requestBackup(this); } }
テスト。
ログを注意深く確認することを忘れないでください。 ファイルまたは設定への誤ったパスを指定すると、通知されます。
アルゴリズムは非常に簡単です。
- アプリケーションにデータ/設定を入力します。
- adb shell bmgrバックアップアプリケーションyour.package.nameのバックアップをリクエストします。
- バックアップマネージャadb shell bmgr runを実行します。
- 削除、再インストール、PROFIT。
おわりに
個人的な感情やグーグルの場合、このサービスはすべてのデバイスで安定して動作するわけではありませんが、この機能の実装はほとんど手間がかからないため、デフォルトでデータベースまたはSharedPreferencesを使用するアプリケーションでの使用をお勧めします。