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

【Android Developers Training】 88. 使用備份

系統(tǒng) 2223 0

注:本文翻譯自Google官方的Android Developers Training文檔,譯者技術(shù)一般,由于喜愛(ài)安卓而產(chǎn)生了翻譯的念頭,純屬個(gè)人興趣愛(ài)好。

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


當(dāng)用戶購(gòu)置了一個(gè)新的設(shè)備并且重置了他們現(xiàn)有的設(shè)備時(shí),他們可能期望當(dāng)Google Play在初始化階段將應(yīng)用恢復(fù)出來(lái)后,能夠同時(shí)把相應(yīng)的數(shù)據(jù)也恢復(fù)出來(lái)。默認(rèn)的,這樣的事情不會(huì)發(fā)生,用戶的進(jìn)度和應(yīng)用的配置都會(huì)丟失。

對(duì)于一些輕量的數(shù)據(jù)(小于一兆的),比如用戶的配置,記錄,游戲的最高分或其他類似的數(shù)據(jù),備份API提供了一種輕量級(jí)的解決方案。這節(jié)課將會(huì)教你如何將備份API集成到你的應(yīng)用當(dāng)中,并使用它來(lái)恢復(fù)數(shù)據(jù)


一). 注冊(cè)Android備份服務(wù)

這節(jié)課需要使用Android備份服務(wù)( Android Backup Service ),它需要注冊(cè)(注冊(cè)請(qǐng)點(diǎn)擊: register here )。一旦注冊(cè)完成,會(huì)生成一個(gè)XML標(biāo)簽,將它插入你的Android配置清單中,看上去像是這樣:

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

android:value
      
      
        ="ABcDe1FGHij2KlmN3oPQRs4TUvW5xYZ"
      
      
        />
      
    

注意每個(gè)備份key對(duì)應(yīng)于一個(gè)包名。如果你有不同的應(yīng)用,需要為每個(gè)應(yīng)用注冊(cè)不同的key。


二). 配置你的清單文件

使用Android備份服務(wù)需要在你的配置清單中添加兩項(xiàng)。首先聲明執(zhí)行備份代理功能的類名,然后將上述的標(biāo)簽作為<Application>的子標(biāo)簽添加進(jìn)來(lái)。假設(shè)備份代理叫做“ TheBackupAgent ”,下面就是相應(yīng)的例子配置文件大致的樣子:

      
        <
      
      
        application 
      
      
        android:label
      
      
        ="MyApp"
      
      
        

             android:backupAgent
      
      
        ="TheBackupAgent"
      
      
        >
      
      
        

    ...

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

    android:value
      
      
        ="ABcDe1FGHij2KlmN3oPQRs4TUvW5xYZ"
      
      
        />
      
      
        

    ...


      
      
        </
      
      
        application
      
      
        >
      
    

三). 編寫你的配置代理

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

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

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

      
        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 的構(gòu)造函數(shù)可以接受數(shù)量可變的文件名。你可以僅僅通過(guò)增加一個(gè)參數(shù)的方法,同時(shí)備份最高分文件盒游戲進(jìn)度文件,像這樣:

      
            @Override

    
      
      
        void
      
      
         onCreate() {

        FileBackupHelper helper 
      
      = 
      
        new
      
       FileBackupHelper(
      
        this
      
      
        , HIGH_SCORES_FILENAME, PROGRESS_FILENAME);

        addHelper(FILES_BACKUP_KEY, helper);

    }
      
    

備份配置信息也很簡(jiǎn)單,和你創(chuàng)建 FileBackupHelper 的方法一樣創(chuàng)建一個(gè) SharedPreferencesBackupHelper 。在這個(gè)情況下,不是向構(gòu)造函數(shù)添加文件名,而是添加你的應(yīng)用所使用的 shared preference 組的名字。下面的例子展示了以配置信息的形式而非文件的形式存儲(chǔ)最高得分時(shí),你的備份代理幫助類實(shí)現(xiàn)可能的樣子:

      
        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);

     }

 }
      
    

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


四). 請(qǐng)求備份

要請(qǐng)求一個(gè)備份,只需要?jiǎng)?chuàng)建一個(gè) BackupManager 實(shí)例,然后調(diào)用它的 dataChanged() 方法:

      
        import
      
      
         android.app.backup.BackupManager;

 ...



 
      
      
        public
      
      
        void
      
      
         requestBackup() {

   BackupManager bm 
      
      = 
      
        new
      
       BackupManager(
      
        this
      
      
        );

   bm.dataChanged();

 }
      
    

這一調(diào)用會(huì)通知備份管理器已經(jīng)有數(shù)據(jù)準(zhǔn)備好備份到云端了。在未來(lái)的某個(gè)時(shí)間,備份管理器會(huì)調(diào)用你的備份代理的 onBackup() 方法。你可以在你的數(shù)據(jù)發(fā)生變化后的任何時(shí)間調(diào)用這個(gè)方法,而不必?fù)?dān)心導(dǎo)致過(guò)量的網(wǎng)絡(luò)傳輸。如果你在執(zhí)行備份任務(wù)之前發(fā)起了兩次備份請(qǐng)求,那么最終備份只會(huì)執(zhí)行一次。


五). 從備份中恢復(fù)

一般來(lái)說(shuō)你不需要人為的發(fā)起一個(gè)恢復(fù)請(qǐng)求,當(dāng)你的應(yīng)用安裝到一個(gè)設(shè)備上后,恢復(fù)備份會(huì)自動(dòng)執(zhí)行。然而,如果有必要人為的激活一次恢復(fù)備份的話,只需要調(diào)用 requestRestore() 方法就行了。

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 中文字幕在线免费播放 | 欧美日韩一区二区三区毛片 | 中国美女日b | 成人毛片18女人毛片 | 久久99精品国产免费观看 | 一本本久综合久久爱 | 一区二区三区中文 | 国产成人欧美一区二区三区的 | 99热这里只有精品首页精品 | 亚洲欧美日韩精品久久 | a级免费网站 | 伊人影院99 | 精品久久久久久午夜 | 美女被视频在线看九色 | 四虎永久免费观看 | 亚洲不卡一区二区三区在线 | 国产一级久久免费特黄 | 亚洲精品综合欧美一区二区三区 | 伊人久久婷婷丁香六月综合基地 | 神马午夜不卡影院 | 午夜在线视频一区二区三区 | 日韩中文字幕在线视频 | 色综合夜夜嗨亚洲一二区 | 亚洲高清中文字幕综合网 | 欧美专区在线 | 日韩久久免费视频 | 久久免费99精品久久久久久 | 91国视频| 精品视频在线免费看 | 成人国产精品久久久免费 | 日韩欧美国产成人 | 日韩 欧美 自拍 在线 视频 | 欧美一级免费观看 | 日本日日黄 | 久久精品国产69国产精品亚洲 | 美女女女女女女bbbbbb毛片 | 青草社区在线观看 | 天天综合天天做 | 欧美成人h版影片在线观看 欧美成人h精品网站 | 四虎国产精品永久一区 | 久久香蕉国产线看观看亚洲片 |