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