Вопрос

Я пытаюсь создать SyncAdapter, который следует запускать каждые несколько секунд для быстрой проверки конкретных данных.Я использую следующий код для запуска SyncAdapter

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

и синхронизация срабатывает правильно, однако я заметил, что она вызывается только раз в десять минут.На основе обучения Android http://developer.android.com/training/sync-adapters/running-sync-adapter.html говоря:

Когда доступно сетевое соединение, система Android отправляет сообщение каждые несколько секунд, чтобы держать соединение TCP/IP устройства открытым.Это сообщение также идет в контент -резолевере каждого приложения.Позвонив setSyncautomaty (), вы можете запустить адаптер синхронизации всякий раз, когда контент -резолвер получает сообщение.

Сетевое соединение доступно, однако это только соединение 3G, а не Wi-Fi. Является ли это причиной долгого ожидания?Как я могу заставить адаптер запускаться каждые 10 секунд?Я уже пробовал использовать периодическую синхронизацию

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

но он по-прежнему работает каждые 10 минут.

Это было полезно?

Решение

Ты жертва андроида SyncManager.Рассмотрим этот сценарий:вы добавляете синхронизацию каждые 10 минут для своего приложения, но вы установили мое приложение на свой телефон, которое также запрашивает у менеджера периодическую синхронизацию каждые 10 минут, и мое приложение выполнило требования расписания на секунду раньше, чем ваше :) Операция синхронизации мое приложение предполагает передачу больших объемов данных, следовательно, использует всю (или почти) пропускную способность доступного интернет-соединения.Умный SyncManager увидит, что нецелесообразно запускать следующий процесс синхронизации до тех пор, пока не будет завершен предыдущий, и поэтому будет ждать завершения процесса и только после этого запускать синхронизацию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top