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

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

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

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

自動(dòng)執(zhí)行(Automated Execution):

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

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

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

提升電池使用效率:

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

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

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

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

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

Sample Code

BasicSyncAdapter.zip

Lessons

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

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

創(chuàng)建 Stub Content Provider

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

創(chuàng)建 Sync Adapter

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

執(zhí)行 Sync Adapter

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)