8

我是一個使用syncAdapter的新手。我看過google IO video(講座介紹here),並且我已經閱讀了2篇關於它的教程(herehere)。如何正確設置syncAdapter?

我也試過了教程的代碼,這令人沮喪,我無法弄清楚如何正確實現syncAdapter。

我認爲,某些偏好(無論是在清單中還是在xml文件中)都是錯誤的,但我找不到原因。

我已經成功添加了同步帳戶,並且還顯示了它的圖標。

不過,我面臨着爲什麼會發生,我不能想出一些奇怪的問題:

  1. 允許賬戶同步。最終用戶無法按下同步按鈕。它也似乎不自動同步,即使我試圖添加這樣的事情後添加帳戶。

  2. 添加賬戶後,最終用戶可以看到一個奇怪的描述:「res/xml/authenticator.xml」。不知道它在哪裏設置。

  3. 當點擊帳戶(添加後),我看到一個空的列表(這是proba。我如何在那裏添加更多的項目?在未來,我需要也與facebook和Gmail同步,但我。不能與事件加入我自己的ContentProvider到這個列表成功

我不需要做真正的授權,所以我只使用一個代碼,而不是從AccountAuthenticatorActivity延伸活動中:

accountManager.addAccountExplicitly(account, PASSWORD, null); 
final Intent intent = new Intent(); 
intent.putExtra(AccountManager.KEY_ACCOUNT_NAME, USERNAME); 
intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE, accountType); 
setAccountAuthenticatorResult(intent.getExtras()); 
setResult(RESULT_OK, intent); 
finish(); 

我也試着設置自動同步nd通過使用here描述啓用同步。

回答

0

關於1)是的,如果沒有互聯網連接,你不能同步。原因是(雖然沒有適當的同步適配器定義),同步適配器是一個應該用於同步主幹與本地數據的組件。如果沒有連接,則啓動同步無效。其實這隻在理論上纔是真實的,因爲即使沒有骨幹數據庫,我也必須開發一個sybc適配器。

我所做的是寫一個由同步適配器,當它被觸發調用,通過我自己的應用程序組件時,同步非常必要,即使沒有連接

+0

考慮considerstion,該框架自動處理多重同步請求。如果你開發自己的組件,你需要自己完成。 – kingston 2012-07-25 17:21:58

+0

我不明白最後的評論。另外,是否有可能與其他syncAdapter進行通信(當然,有正確的權限),例如獲取從他們獲取數據或與他們的服務器通信所需的憑據?問題是在我最近寫的另一篇文章:http://stackoverflow.com/questions/11532257/android-use-syncadapter-to-sync-with-gmail-data-and-facebook-data – 2012-07-25 17:37:36

+0

關於我以前的評論。假設用戶非常快速地點擊同步按鈕兩次。該框架儘量避免發送請求兩次。如果觸發同步的應用程序組件可以發出多個請求,則需要執行類似操作。例如,在我的應用程序中,如果在同步仍在進行時發出第二個請求,我將放棄當前同步,然後開始新的同步。如果第三次請求來臨,我將放棄第一次請求,並開始第二次請求,我會忽略第三次請求等。您需要實現自己的策略,以優化我看到的同步 – kingston 2012-07-25 17:44:47