2010-09-08 87 views
18

我們目前正在做什麼?
我們在使用Web服務(RESTful)公開的服務器上有一些結構化的文本數據。我的應用程序定期輪詢此服務器(AlarmManagerService)以獲取數據並將其保存在本地數據庫(sqlite)中。另外,用戶被預先認證並授權訪問。Android SyncAdapter用例

問題:

  1. 有一個在SDK中的SyncAdapter /的AccountManager類,我想知道,如果它可以在我的應用程序的任何使用來實現上述同步的?

  2. 如果是,在後端需要什麼樣的基礎設施來支持使用此適配器設置的同步?鏈接到文章等給予使用這個適配器和其他信息的細節,讚賞。

回答

18

是SyncAdapter/AccountManager對您的用例很有用。 Authenticator(在場景後面調用AccountManager)可以處理應用程序的身份驗證。 SyncAdapter可以處理從服務器到本地數據存儲的定期同步。您不需要使用AlarmManager自己實現它。有關使用SampleSycnAdapter/Authenticator的示例代碼,請參閱android devguide中的SampleSyncAdapter

您的後端REST服務器可以很好地與SyncAdapter配合使用,沒有太多變化。唯一的區別是在你的客戶端,比如,例如,不是在AlarmManager中調用服務器的讀取數據方法,而是在擴展SyncAdapter的類的onPerformSync()中調用它們。上面提到的示例代碼將使其更清楚。希望這有助於。

+0

謝謝Megha!我會檢查示例項目(似乎我不得不下載2.2)。 Plz證實了我的理解:這基本上是一個旨在使雙方之間的同步活動變得輕鬆的類。 我將不得不編寫所有的網絡通信,XML解析,數據持久性邏輯並應用一層SyncAdapter來封裝所有流? – Samuh 2010-09-08 09:14:42

+0

是的,這是正確的。 – 2010-09-08 09:43:17