Android使用Sync Adapter傳輸數(shù)據(jù)

2018-08-02 17:43 更新

編寫:jdneo - 原文:http://developer.android.com/training/sync-adapters/index.html

如果我們的應(yīng)用允許 Android 設(shè)備和網(wǎng)絡(luò)服務(wù)器之間進行數(shù)據(jù)同步,那么它無疑將變得更加實用,更加吸引用戶的注意。例如,將數(shù)據(jù)傳輸?shù)椒?wù)器可以實現(xiàn)數(shù)據(jù)的備份,另一方面,從服務(wù)器獲取數(shù)據(jù)可以讓用戶隨時隨地都能使用我們的應(yīng)用。有時候,用戶可能會覺得在線編輯他們的數(shù)據(jù)并將其發(fā)送到設(shè)備上,會是一件很方便的事情;或者他們有時會希望將收集到的數(shù)據(jù)上傳到一個統(tǒng)一的存儲區(qū)域中。

盡管我們可以設(shè)計一套自己的系統(tǒng)來實現(xiàn)應(yīng)用中的數(shù)據(jù)傳輸,但我們也可以考慮一下使用 Android 的同步適配器框架(Android's Sync Adapter Framework)。該框架可以用來幫助管理數(shù)據(jù),自動傳輸數(shù)據(jù),以及協(xié)調(diào)不同應(yīng)用間的同步問題。當(dāng)使用這個框架時,我們可以利用它的一些特性,而這些特性可能是我們自己設(shè)計的傳輸方案中所沒有的:

插件架構(gòu)(Plug-in Architecture):

允許我們以可調(diào)用組件的形式,將傳輸代碼添加到系統(tǒng)中。

自動執(zhí)行(Automated Execution):

允許我們基于不同的準則自動地執(zhí)行數(shù)據(jù)傳輸,比如:當(dāng)數(shù)據(jù)變更時,或者每隔固定一段時間,亦或者每天,來自動執(zhí)行一次數(shù)據(jù)傳輸。另外,系統(tǒng)會自動把當(dāng)前無法執(zhí)行的傳輸添加到一個隊列中,并且在合適的時候運行它們。

自動網(wǎng)絡(luò)監(jiān)測(Automated Network Checking):

系統(tǒng)只在有網(wǎng)絡(luò)連接的時候才會運行數(shù)據(jù)傳輸。

提升電池使用效率:

允許我們將所有的數(shù)據(jù)傳輸任務(wù)統(tǒng)一地進行一次性批量傳輸,這樣的話多個數(shù)據(jù)傳輸任務(wù)會在同一段時間內(nèi)運行。我們應(yīng)用的數(shù)據(jù)傳輸任務(wù)也會和其它應(yīng)用的傳輸任務(wù)相結(jié)合,并一起傳輸。這樣做可以減少系統(tǒng)連接網(wǎng)絡(luò)的次數(shù),進而減少電量的使用。

賬戶管理和授權(quán):

如果我們的應(yīng)用需要用戶登錄授權(quán),那么我們可以將賬戶管理和授權(quán)的功能集成到數(shù)據(jù)傳輸組件中。

本系列課程將展示如何創(chuàng)建一個 Sync Adapter,如何創(chuàng)建一個綁定了 Sync Adapter 的服務(wù)(Service),如何提供其它組件來幫助我們將 Sync Adapter 集成到框架中,以及如何通過不同的方法來運行 Sync Adapter。

Note:Sync Adapter 是異步執(zhí)行的,它可以定期且有效地傳輸數(shù)據(jù),但在實時性上一般難以滿足要求。如果我們想要實時地傳輸數(shù)據(jù),那么應(yīng)該在 AsyncTask 或 IntentService 中完成這一任務(wù)。

Sample Code

BasicSyncAdapter.zip

Lessons

創(chuàng)建 Stub 授權(quán)器

學(xué)習(xí)如何在我們的應(yīng)用中添加一個 Sync Adapter 框架需要的賬戶處理組件。這節(jié)課將展示如何簡單地創(chuàng)建一個 Stub Authenticator 組件。

創(chuàng)建 Stub Content Provider

學(xué)習(xí)如何在我們的應(yīng)用中添加一個 Sync Adapter 框架需要的 Content Provider 組件。在這節(jié)課中,假設(shè)我們的應(yīng)用實際上不需要使用 Content Provider,所以它將教我們?nèi)绾翁砑右粋€ Stub 組件。如果我們的應(yīng)用已經(jīng)有了一個 Content Provider 組件,那么可以跳過這節(jié)課。

創(chuàng)建 Sync Adapter

學(xué)習(xí)如何將我們的數(shù)據(jù)傳輸代碼封裝到組件當(dāng)中,并讓其可以被 Sync Adapter 框架自動執(zhí)行。

執(zhí)行 Sync Adapter

學(xué)習(xí)如何使用 Sync Adapter 框架激活并調(diào)度數(shù)據(jù)傳輸。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號