2013-09-23 153 views
0

我正在嘗試編寫一個本地(遠程?)服務,它的唯一職責是定期檢查一組遠程URL以查看是否發生了某些更改(並且在本例中更新其服務擁有相應的DB)。同步服務

SyncAdapter不是可能的選擇的原因是我不能使用LoginManger:我通過網頁表單執行登錄,通過SAML,確切地說是第三方網站,保持會話使用一組cookie。沒有認證令牌,沒有無限的會話。因此,沒有LoginManager,最終沒有SyncAdapter。另一方面,SyncAdapter處理很多我想要做的事情,但我不知道如何:它以非嚴格的時間表觸發更新過程,但基於電池狀態,網絡信號力量等等。通過這種方式,同步幾乎是連續的,如果我收到郵件,則Gmail應用程序會在3秒後通知它。

我想寫我自己的服務,它允許用戶更新應用程序數據庫(我不在乎它是否每天一兩次,實際上更新很少但很重要),這不會導致電池消耗,以及(如果可能的話,不重要),可以通過前景活動來觸發/停止。

+0

你到底在找什麼?你需要幫助來寫一個服務?或者確認「SyncAdapter」不適合您的情況? – jboi

+0

我只需要解決我的問題。由於我已經知道調度遠程服務可能會導致電池耗盡,並且由於我無法使用同步適配器,我該怎麼辦? – Gianluca

回答

1

你提到了兩種可能性。一個由自己做同步,另一個與「不那麼有據可查」 SyncAdapter,可供由於Android 2.

是有利弊兩個:

  • 書面服務自是定義明確,並有大量的示例和文檔。
  • 即使Google管理員也並不真正瞭解SyncAdapter。我在Google的IO上看過演示文稿。他們談論電池耗盡問題,但根本沒有提及SyncAdapter。
  • 另一方面,SyncAdapter具有您需要的所有功能(可能更多)。你必須建立空的班級,例如授權讓它啓動並運行。

我建議試試SynvAdapter。我理解這個概念並讓我的第一個應用程序正常運行的方式是使用這個SyncAdapter Concept overview