亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【Android Developers Training】 88. 使用備份

系統 1959 0

注:本文翻譯自Google官方的Android Developers Training文檔,譯者技術一般,由于喜愛安卓而產生了翻譯的念頭,純屬個人興趣愛好。

原文鏈接: http://developer.android.com/training/cloudsync/backupapi.html


當用戶購置了一個新的設備并且重置了他們現有的設備時,他們可能期望當Google Play在初始化階段將應用恢復出來后,能夠同時把相應的數據也恢復出來。默認的,這樣的事情不會發生,用戶的進度和應用的配置都會丟失。

對于一些輕量的數據(小于一兆的),比如用戶的配置,記錄,游戲的最高分或其他類似的數據,備份API提供了一種輕量級的解決方案。這節課將會教你如何將備份API集成到你的應用當中,并使用它來恢復數據


一). 注冊Android備份服務

這節課需要使用Android備份服務( Android Backup Service ),它需要注冊(注冊請點擊: register here )。一旦注冊完成,會生成一個XML標簽,將它插入你的Android配置清單中,看上去像是這樣:

      
        <
      
      
        meta-data 
      
      
        android:name
      
      
        ="com.google.android.backup.api_key"
      
      
        

android:value
      
      
        ="ABcDe1FGHij2KlmN3oPQRs4TUvW5xYZ"
      
      
        />
      
    

注意每個備份key對應于一個包名。如果你有不同的應用,需要為每個應用注冊不同的key。


二). 配置你的清單文件

使用Android備份服務需要在你的配置清單中添加兩項。首先聲明執行備份代理功能的類名,然后將上述的標簽作為<Application>的子標簽添加進來。假設備份代理叫做“ TheBackupAgent ”,下面就是相應的例子配置文件大致的樣子:

      
        <
      
      
        application 
      
      
        android:label
      
      
        ="MyApp"
      
      
        

             android:backupAgent
      
      
        ="TheBackupAgent"
      
      
        >
      
      
        

    ...

    
      
      
        <
      
      
        meta-data 
      
      
        android:name
      
      
        ="com.google.android.backup.api_key"
      
      
        

    android:value
      
      
        ="ABcDe1FGHij2KlmN3oPQRs4TUvW5xYZ"
      
      
        />
      
      
        

    ...


      
      
        </
      
      
        application
      
      
        >
      
    

三). 編寫你的配置代理

創建你的備份代理最簡單的方法是繼承包裝類 BackupAgentHelper 。創建這一輔助類其實是一個非常簡單地過程。只需要創建一個名字和之前你在清單文件中聲明的那個類相同的類(比如, TheBackupAgent ),然后繼承“ BackupAgentHelper ”,在覆寫 onCreate() 方法就行了。

onCreate() 方法中,創建一個 BackupHelper 對象。這些特定的類專門用來備份某種類型的數據。Android框架當前包含兩種這樣的類: FileBackupHelper SharedPreferencesBackupHelper 。當你創建了這個類的對象,并指出你想要備份的數據后,只需要使用 addHelper() 方法將它添加到 BackupAgentHelper中就行了,添加一個key,之后用它來恢復數據。在大多數情況下,整個實現只需要十幾行代碼。

下面是一個備份游戲最高得分文件的例子:

      
        import
      
      
         android.app.backup.BackupAgentHelper;

 
      
      
        import
      
      
         android.app.backup.FileBackupHelper;





 
      
      
        public
      
      
        class
      
       TheBackupAgent 
      
        extends
      
      
         BackupAgentHelper {

    
      
      
        //
      
      
         The name of the SharedPreferences file
      
      
        static
      
      
        final
      
       String HIGH_SCORES_FILENAME = "scores"
      
        ;



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



    
      
      
        //
      
      
         Allocate a helper and add 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 。在這個情況下,不是向構造函數添加文件名,而是添加你的應用所使用的 shared preference 組的名字。下面的例子展示了以配置信息的形式而非文件的形式存儲最高得分時,你的備份代理幫助類實現可能的樣子:

      
        import
      
      
         android.app.backup.BackupAgentHelper;

 
      
      
        import
      
      
         android.app.backup.SharedPreferencesBackupHelper;



 
      
      
        public
      
      
        class
      
       TheBackupAgent 
      
        extends
      
      
         BackupAgentHelper {

     
      
      
        //
      
      
         The names of the SharedPreferences groups that the application maintains.  These

     
      
      
        //
      
      
         are the same strings that are passed to getSharedPreferences(String, int).
      
      
        static
      
      
        final
      
       String PREFS_DISPLAY = "displayprefs"
      
        ;

     
      
      
        static
      
      
        final
      
       String PREFS_SCORES = "highscores"
      
        ;



     
      
      
        //
      
      
         An arbitrary string used within the BackupAgentHelper implementation to

     
      
      
        //
      
      
         identify the SharedPreferencesBackupHelper's data.
      
      
        static
      
      
        final
      
       String MY_PREFS_BACKUP_KEY = "myprefs"
      
        ;



     
      
      
        //
      
      
         Simply allocate a helper and install it
      
      
        void
      
      
         onCreate() {

         SharedPreferencesBackupHelper helper 
      
      =

                 
      
        new
      
       SharedPreferencesBackupHelper(
      
        this
      
      
        , PREFS_DISPLAY, PREFS_SCORES);

         addHelper(MY_PREFS_BACKUP_KEY, helper);

     }

 }
      
    

你可以添加任意多的備份幫助實例到你的備份代理中,但是要記住的是對每種備份的類型,你只能有一種。一個 FileBackupHelper 處理所有你要備份的文件,所有 SharedPreferencesBackupHelper 處理你需要備份的 shared preference組。


四). 請求備份

要請求一個備份,只需要創建一個 BackupManager 實例,然后調用它的 dataChanged() 方法:

      
        import
      
      
         android.app.backup.BackupManager;

 ...



 
      
      
        public
      
      
        void
      
      
         requestBackup() {

   BackupManager bm 
      
      = 
      
        new
      
       BackupManager(
      
        this
      
      
        );

   bm.dataChanged();

 }
      
    

這一調用會通知備份管理器已經有數據準備好備份到云端了。在未來的某個時間,備份管理器會調用你的備份代理的 onBackup() 方法。你可以在你的數據發生變化后的任何時間調用這個方法,而不必擔心導致過量的網絡傳輸。如果你在執行備份任務之前發起了兩次備份請求,那么最終備份只會執行一次。


五). 從備份中恢復

一般來說你不需要人為的發起一個恢復請求,當你的應用安裝到一個設備上后,恢復備份會自動執行。然而,如果有必要人為的激活一次恢復備份的話,只需要調用 requestRestore() 方法就行了。

【Android Developers Training】 88. 使用備份API


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲成色999久久网站 | 久久精品这里热有精品2015 | 色天天色综合 | 国产精品乱码高清在线观看 | 色视频免费国产观看 | 奇米婷婷| 在线播放国产一区 | 国产精品一区在线观看你懂的 | 久久99精品综合国产首页 | 成人a大片高清在线观看 | 久久精品国产精品亚洲人人 | 久久久精品久久 | 久草在线视频在线观看 | 欧美精品亚洲精品日韩一区 | 亚洲国产精品日韩在线观看 | 国产福利午夜 | 99热久久精里都是精品66 | 欧美成人性色 | 另类日本人xxxxbbbb | 精品欧美一区二区精品久久 | 91精品国产91久久久久久 | 四虎免费永久网站入口 | 乱色欧美videos黑人 | 欧美亚洲国产成人精品 | 精品午夜国产在线观看不卡 | 日韩欧美一区二区三区四区 | 亚洲美女视频网 | 久久久日韩精品国产成人 | 全部毛片免费看 | 羞羞视频网站在线观看 | 精品一区二区三区在线观看 | 免费精品精品国产欧美在线 | 国产成人综合高清在线观看 | 国产精品伦理久久久久久 | 久久青青草原精品国产麻豆 | 日本欧美在线观看 | 久久久久久久国产精品视频 | 99视频网 | 亚洲欧美日韩国产精品一区 | 国产亚洲精品视频中文字幕 | 欧美日韩精品国产一区二区 |