Подтвердить что ты не робот

Совместимая версия Android JobScheduler - альтернативная версия

Есть ли библиотека или, по крайней мере, некоторый пример с открытым исходным кодом, который обеспечивает функциональность нового API-интерфейса JobScheduler для Android-L. Не сложно реализовать мою собственную версию (с очень ограниченными функциональными возможностями), но, с другой стороны, она не является тривиальной.

Итак, чтобы подвести итог, есть ли что-нибудь, что по крайней мере может предоставить подмножество функций нового API JobScheduler?

4b9b3361

Ответ 2

Вы можете сделать некоторые из них самостоятельно, но, к сожалению, приложение не может достичь сопоставимой функциональности для многих API планировщика заданий. Проблема заключается в том, что мониторинг нескольких критериев выполнения, которые предоставляет планировщик заданий (в частности, состояния оплаты, бездействия устройства и возможности подключения), требует, чтобы ваше приложение постоянно работало только для получения трансляций по этим состояниям - и стоимости выполнения постоянно перевешивают другие преимущества, даже если ваше приложение является единственным, кто это делает. Если каждое приложение пытается работать непрерывно, чтобы сделать такой же мониторинг, пользовательский опыт будет ужасным.

Ближе всего вы можете прийти разумным образом - запустить службу "время от времени", чтобы проверить ограничения, которые вас интересуют, и отступить и повторить попытку позже, если они не будут удерживаться в момент проверки. Вы также должны быть осторожны с тем, как вы планируете создавать вещи, в частности, если вы собираетесь использовать сеть, вам нужно быть предельно осторожным, чтобы вы случайно не заставляли множество устройств попадать в сеть на в то же время. Сотовые операторы очень недовольны, если они видят одновременный трафик из вашего приложения с каждого устройства в своей сети. Кроме того, не забудьте избегать точных сигналов тревоги, если это вообще возможно, чтобы ОС имела свободу действий, чтобы пакет приложений работал вместе с другими.

Неприемлемое состояние устройства/пользователя для вашего приложения сложно, но, к сожалению, доступно подключение и зарядное состояние.

Конечным инструментом в вашем распоряжении является Sync Manager, который требует больше инфраструктуры для использования, но предлагает некоторые разумно мощные средства планирования, особенно в отношении требований к подключению.

Ответ 3

Просто используйте GCM Network Manager. Он предоставляет API для планирования задач. Он доступен на устройствах уровня API до уровня 21. На устройствах уровня API 21+ он использует внутренний планировщик заданий.

Ответ 4

По состоянию на ноябрь 2015 года в этой библиотеке https://github.com/evant/JobSchedulerCompat упоминается, что она не поддерживается активно

Предупреждение о том, что этот проект не поддерживается!

Вот библиотека под названием Trigger https://github.com/airk000/Trigger, которая также утверждает, что она является backport службы JobScheduler и имеет следующие функции в соответствии с ее документацией.

  • поддержка нескольких условий с одним заданием
  • внутренние условия: зарядка устройства, неконтролируемая сеть и состояние простоя.
  • Поддержка сохраняются работой, средства, сохраняющихся-Able работы может быть вызвано после перезагрузки устройства
  • срок службы поддержки, последний шанс срабатывания
  • разрешить действие вашей работы в фоновом режиме или в главном потоке, следовать вашей конфигурации