2016-07-18 2 views
6

Мой AppWidgetProvider (который, конечно, BroadcastReceiver) зарегистрирован получить CONNECTIVITY_CHANGE, так что я могу обновить виджеты, как только будет восстановлена ​​сеть (правда, только в случае необходимости, т.е. если предыдущий обновление было упущено из-за отсутствия подключения).Android N: дело с отсутствием CONNECTIVITY_CHANGE

Но, как указано here, это уже не будет возможным в Android N. Предложение заключается в том, чтобы использовать JobScheduler, который позволяет указать, что работы должны выполняться только при подключении к сети посредством метода .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY).

Однако я не вижу, как это можно использовать для повторения моего желаемого поведения. Мне кажется, что метод .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) приведет к тому, что задание не будет запущено вообще, если в то время, когда запланировано задание, нет сети, и оно будет не, заставив Работу терпеливо ждать, пока не появится сеть и затем запустите (что мне и нужно).

Итак, как мне сохранить поведение, в котором я нуждаюсь, с Android N?

ответ

0

Я использую Планировщики заданий, и это не зависит от того, доступна ли сеть или нет при планировании задания. Он обеспечивает определенные условия и когда эти условия удовлетворены, задание запланировано. Вы можете установить повторяющуюся работу, а также указать минимальный промежуток времени между заданиями. Например, всякий раз, когда я подключаю свой телефон к зарядке, PlayStore начинает обновлять приложения, поскольку у задания есть ограничение зарядки.

Если вы планируете работу и условия не выполняются, она будет планировать, когда сеть будет доступна. Попробуйте отключить сеть и открыть профиль на Facebook. Он попросит вас загрузить профиль в сети. Теперь подключитесь к сети, и вы получите уведомление после загрузки профиля.

+0

Вы также можете воспользоваться диспетчером пожарной базы, если хотите. Он обратно совместим. – Embydextrous

+0

Кроме того, вы можете продолжать работу по перезагрузке устройства. – Embydextrous

0

попытки добавить Google пинг для изменения сети, которые помогут вам для изменений сети и все вызывает у меня такое же проблема, когда я разрабатывал с гнездовыми услугами. Так может быть, это также поможет вам.

Смежные вопросы