2011-03-24 77 views
6

有誰知道,當你啓用自動同步功能時,谷歌帳戶同步各種應用的頻率如何?我知道Gmail幾乎是即時的,但其他事情呢? 例如如果我有一個Picasa應用程序使用SyncAdapter將本地照片與在線同步,那麼將調用onPerformSync方法的頻率如何?Android AutoSync運行間隔?

另外,這個間隔是否可以被覆蓋?

回答

2

AutoSync將在數據源中發生更改時觸發。

例如,如果您的Contacts SyncAdapter配置爲自動同步,則當聯繫人在延遲30秒後發生更改時,將會調用onPerformSync。

+0

我最終也發現它是30秒。我可以將此間隔更改爲更高的值嗎? – Taranfx 2011-04-16 07:08:43

+0

看來我們不能配置它。我花了一段時間看着AccountManager API,我找不到任何東西。 – Sukumar 2011-04-18 11:29:34

1

我發現了另一個解決辦法來配置這種延遲(這可能會導致其他副作用,仔細覈對下面的步驟)

這是通過使用ContentObserver和AP​​I的AccountManager的組合。以下是步驟:

  1. 將ContentObserver註冊到聯繫人數據庫。
  2. 聯繫人數據庫中的任何更改都會觸發contentObserver的onChange。在這個函數內部取消下面的待處理的syncRequests。 `ContentResolver.cancelSync(account,ContactsContract.AUTHORITY);
  3. 現在按照需要的延遲安排同步。

以上將會有確保ContentObserver始終處於活動狀態的副作用,因此不推薦使用。