2013-05-08 106 views
8

有,我用我的數據庫來填充信息REST服務REST服務,也就是後來被我的應用程序使用。 我已經閱讀了關於此問題的幾個主題,現在必須決定如何讓REST服務和我的數據庫之間的同步工作。通訊錄與Android應用

一個應用程序,大約在DB的股票,並將其存儲谷歌API的金融信息獲取的思考,顯示該應用程序已啓動的信息,並且當特定事件在股價發生發送通知。

我已經實現了當用戶手動請求同步時啓動的AsyncTask的簡單選擇。現在,我要實現自動同步,這些都是我發現的選項:

  • 創建一個Service,將做同步
  • 使用同步適配器/同步提供

所以我發現第二種選擇的優點很多,特別是那些在this視頻中解釋的,但也有兩個主要的缺點:

  • 我找不到好的文檔Android同步(幾個第三方文章,如these,但沒有官方谷歌或Android Developers指南)
  • 根據這篇文章搞亂同步適配器可能會導致重大問題,如操作系統崩潰和重新啓動。

大多數我發現信息是很老,所以也許事情已經改變了,但我的應用程序應該與API級別8及以上的工作,所以我會爲任何建議和指向有價值非常感謝文檔。

+0

要明確,即使應用程序不在前臺,您是否希望應用程序下載/同步數據?可能的解決方案可能因此而異。 – Esparver 2013-05-08 07:20:13

+0

是的,我喜歡。對於通知。 – tbkn23 2013-05-08 08:01:58

+0

您是否希望應用程序定期發送請求以瞭解是否有更改? – Pcriulan 2013-05-08 09:57:41

回答

3

肯定與SyncAdapter去。按照說明在這裏:Why does ContentResolver.requestSync not trigger a sync?

要做SyncAdapter,您還需要創建一個Account/AccountAuthenticator,以便您的SyncAdapter知道如何登錄您的服務 - 除非它確實是Google Finance API,在這種情況下,您只需要做的是在清單中應用正確的權限,以便它將使用手機上已有的帳戶設置。

你沒有鏈接你提到的討論崩潰的文章,但我知道它,它實際上是在談論帳戶 - 哪一個是的,你需要小心。