Android SyncAdapter频率

时间:2014-04-12 14:50:03

标签: android android-syncadapter

我正在尝试构建一个应该每隔几秒运行一次的SyncAdapter,以快速检查特定数据。 我使用以下代码运行SyncAdapter

ContentResolver.setIsSyncable(account, CONTENT_AUTHORITY, 1);           
ContentResolver.setSyncAutomatically(account, CONTENT_AUTHORITY, true);

并且同步是trickred correclty然而我注意到它每十分钟只调用一次。 基于Android培训http://developer.android.com/training/sync-adapters/running-sync-adapter.html说:

  

当网络连接可用时,Android系统   每隔几秒发送一条消息以保持设备的TCP / IP   连接打开。此消息也会转到每个的ContentResolver   应用程序。通过调用setSyncAutomatically(),您可以运行同步适配器   每当ContentResolver收到消息时。

我可以使用网络连接,但它只有3G连接,而不是WiFi - 这是长时间等待的原因吗? 如何让我的适配器每10秒运行一次? 我已经尝试过使用定期同步

ContentResolver.addPeriodicSync(account, CONTENT_AUTHORITY, new Bundle(), 10);

但它仍然每10分钟运行一次。

1 个答案:

答案 0 :(得分:2)

你是android SyncManager的受害者。考虑这种情况:你为你的应用程序添加了每10分钟的同步,但是你已经在我的手机上安装了我的应用程序,并且要求管理员进行10分钟的定期同步,并且我的应用程序比你的应用程序执行了一秒钟的计划要求:)我的应用程序的同步操作涉及大量数据的传输,因此使用可用互联网连接的整个(或几乎)带宽。聪明的SyncManager会看到在上一次完成之前启动另一个同步过程并不明智,因此它会等待该过程结束,然后才会启动同步。