8

我是 syncAdapter 的新手。我已经观看了google IO 视频(此处的讲座演示),并且我已阅读了 2 个关于它的教程(此处此处)。

我还尝试了教程的代码,令人沮丧的是我无法弄清楚如何正确实现同步适配器。

我相信一些偏好(无论是在清单中还是在 xml 文件中)都是错误的,但我不知道为什么。

我已成功允许添加同步帐户并使用其图标显示它。

但是,我面临一些奇怪的问题,我无法弄清楚它们为什么会发生:

  1. 允许帐户同步。最终用户无法按下同步按钮。即使我在添加帐户时尝试添加这样的东西,它似乎也不会自动同步。

  2. 添加帐户后,最终用户会看到一个奇怪的帐户描述:“res/xml/authenticator.xml”。不确定它的设置位置。

  3. 单击帐户时(添加后),我看到一个空列表(很可能。我如何在那里添加更多项目?将来,我还需要与 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();

我还尝试使用此处描述的内容设置自动同步并启用同步。

4

1 回答 1

0

关于 1) 是的,如果没有互联网连接,您将无法同步。原因是(尽管没有正确定义同步适配器)同步适配器是一个组件,它应该用于将主干与本地数据同步。如果没有连接,则启动同步是没有意义的。实际上,这仅在理论上是正确的,因为即使没有骨干数据库,我也必须开发一个 sybc 适配器。

我所做的是编写一个组件,该组件在触发时由同步适配器调用,并且在需要同步时由我自己的应用程序调用,即使没有连接也是如此

于 2012-07-25T17:19:44.417 回答