Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> 系統備份 >> Android---使用備份API

Android---使用備份API

編輯:系統備份

 

當用戶采購一款新的設備或重置他們現有的設備時,他們可能期望Google Play在把應用程序恢復到設備上的過程中,把之前與應用程序關聯的數據也恢復到設備上。默認情況下,這種情況不會發生,並且應用程序中的所有的用戶操作履歷和設置都不會被恢復。

對於那些相對輕量級的數據(少於1Mb),如用戶設置、注釋、游戲成績或其他的統計數據,備份API提供了一種輕量級的解決方案。本文討論如何把備份API集成到你的應用程序中,並使用備份API把數據恢復到一個新的設備上。

注冊Android的備份服務

本文需要使用Android的備份服務,它需要注冊。注冊地址:https://developer.android.com/google/backup/signup.html?hl=zh-CN&csw=1,注冊成功之後,該服務會被包裝在一個如下所示的XML標簽中:

android:value=ABcDe1FGHij2KlmN3oPQRs4TUvW5xYZ />

你需要把這個標簽插入到Android的清單文件中。需要注意的是,每個備份鍵對應一個特定的包名,如果是不同的應用程序,就要注冊不同的備份鍵。

配置清單文件

使用Android的備份服務需要在你的應用程序清單文件中做兩件事。第一,要聲明用於備份代理的類,然後把上面的XML標簽作為標簽的子元素添加到清單文件中。假設你的備份代理類是TheBackupAgent,那麼清單文件的如下:

android:backupAgent=TheBackupAgent>
...
android:value=ABcDe1FGHij2KlmN3oPQRs4TUvW5xYZ />
...

編寫備份代理

創建備份代理的最容易的方法是繼承包裝類BackupAgentHelper類,創建這個輔助類過程很簡單,只需創建一個與清單文件聲明的備份代理的名稱相同類(本例中使用TheBackupAgent),並繼承BackupAgentHelper,然後重寫onCreate()方法。

在onCreate()方法內部,創建一個備份輔助器,備份輔助器是備份某種類型數據的專用類。Android框架當前包含了兩種輔助器:FileBackupHelper和SharePreferencesBackupHelper。創建輔助器,並把它指向要備份的數據之後,就要使用andHelper()方法把它添加給BackupAgentHelper類,這個方法還需要一個用於後續獲取數據的鍵名。大多數情況下,整個實現大約需要10行代碼,以下是一個備份高分值文件的例子:

import android.app.backup.BackupAgentHelper;
import android.app.backup.FileBackupHelper;


public class TheBackupAgent extends BackupAgentHelper {
// The name of theSharedPreferences file
static final String HIGH_SCORES_FILENAME = scores;

// A key to uniquelyidentify the set of backup data
static final String FILES_BACKUP_KEY = myfiles;

// Allocate a helper andadd it to the backup agent
@Override
void onCreate() {
FileBackupHelper helper = new FileBackupHelper(this, HIGH_SCORES_FILENAME);
addHelper(FILES_BACKUP_KEY,helper);
}
}

為了增加靈活性,FileBackupHelper類的構造器可以帶有可變數量的文件名。你可以很容易的同時備份高分值文件和游戲進度文件,如:

@Override
void onCreate() {
FileBackupHelper helper = new FileBackupHelper(this, HIGH_SCORES_FILENAME,PROGRESS_FILENAME);
addHelper(FILES_BACKUP_KEY,helper);
}

備份設置也類似的簡單。使用與FileBackupHelper相同的方法創建一個SharedPreferencesBackupHelper輔助器。這時要用應用程序所使用的共享設置組來代替構造器中的文件名,示例如下:

import android.app.backup.BackupAgentHelper;
importandroid.app.backup.SharedPreferencesBackupHelper;

public class TheBackupAgent extends BackupAgentHelper {
// The names of theSharedPreferences groups that the application maintains. These
// are the samestrings that are passed to getSharedPreferences(String, int).
static final String PREFS_DISPLAY = displayprefs;
static final String PREFS_SCORES = highscores;

// An arbitrarystring used within the BackupAgentHelper implementation to
// identify theSharedPreferencesBackupHelper's data.
static final String MY_PREFS_BACKUP_KEY = myprefs;

// Simply allocate ahelper and install it
void onCreate() {
SharedPreferencesBackupHelper helper =
new SharedPreferencesBackupHelper(this, PREFS_DISPLAY,PREFS_SCORES);
addHelper(MY_PREFS_BACKUP_KEY, helper);
}
}

在備份代理輔助器中,你可以添加很多備份輔助器的實例,但要記住,每種類型只需一個實例。即一個FileBackupHelper實例可用於處理所有需要備份的文件,一個SharedPreferencesBackupHelper實例可用於處理所有的需要備份的共享設置組。

請求備份
為了請求備份,。只需創建一個BackupManager類的實例,然後調用它的dataChanged()方法。

import android.app.backup.BackupManager;
...

public void requestBackup() {
BackupManager bm = new BackupManager(this);
bm.dataChanged();
}

這個調用通知備份管理器有數據准備備份到雲端。在接下來的某個時刻,備份管理器會調用備份代理的onBackup()方法。無論數據在什麼時候發生改變,你都可以要求這個調用,而不用擔心網絡的過度使用。如果在備份發生之前,你申請了兩次備份,那麼備份只會發生一次。

從備份中恢復數據

通常,你不需要手動的要求恢復處理,當應用程序被安裝到一個設備上時,它會自動發生。但是,如果需要手動的觸發恢復操作,只需調用requestRestore()方法。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved