我有一个应用程序,它使用SyncAdapter对远程服务器进行REST调用,然后使用Content Provider将更新持久保存到本地SQLLite DB。
我可以通过账户&触发来拨打电话。同步,然后选择我的适配器,并使用重新同步按钮来触发呼叫
系统如何知道在SyncAdapter中进行onPerformSync()调用的时间(频率)?
我正在登录REST呼叫解析的服务,但我没有看到任何呼叫,除非我按上述方式手动执行。
顺便说一下,我现在正在模拟器中运行,我还没有在设备上安装它
答案 0 :(得分:1)
从您的ContentProvider中,您必须让SyncAdapter知道数据集发生了变化。
您可以致电notifyChange()
来完成此操作例如在您的ContentProviders insert()方法中:
getContext()。getContentResolver()。notifyChange(rowUri,null);
它可能不会立即同步,但这就是SyncAdapters的工作方式。系统决定何时是同步的好时机。通常情况下,我的体验相对较快。当然,您可能不希望每次数据库中发生更改时都要同步,但您始终可以将代码放入performSync以控制同步的频率。
希望这有助于某人:)