Вы можете сделать некоторые из них самостоятельно, но, к сожалению, само приложение не может обеспечить сопоставимую функциональность с API-интерфейсом планировщика заданий. Проблема в том, что отслеживание нескольких критериев выполнения, предоставляемых планировщиком заданий (в частности, состояния зарядки, бездействия устройства и подключения), потребует, чтобы ваше приложение работало постоянно только для того, чтобы получать широковещательные сообщения об этих состояниях. постоянно будет перевешивать другие преимущества, даже если ваше приложение — единственное, что делает это. Если каждое приложение будет пытаться работать непрерывно, чтобы выполнять один и тот же мониторинг, пользовательский опыт будет ужасным.
Самое близкое, что вы можете сделать разумным образом самостоятельно, - это запускать службу "время от времени", чтобы проверить интересующие вас ограничения, а затем отступить и повторить попытку позже, если они не выполняются в то время, когда вы проверяете. Вы также должны быть осторожны при планировании событий — в частности, если вы собираетесь использовать сеть, вам нужно быть чрезвычайно осторожным, чтобы случайно не вызвать много устройства, чтобы подключиться к сети в то же время. Операторы сотовой связи очень недовольны, если видят одновременный трафик вашего приложения со всех устройств в своей сети. Кроме того, не забывайте по возможности избегать точных сигналов тревоги, чтобы у ОС была возможность пакетировать работу вашего приложения вместе с другими.
К сожалению, ваше приложение само по себе не может отслеживать бездействие устройства/активность пользователя, но подключение и состояние заряда легко доступны.
Последним инструментом в вашем распоряжении является Sync Manager, для использования которого требуется дополнительная инфраструктура, но он предлагает некоторые достаточно мощные средства планирования, особенно в отношении требований к подключению.
person
ctate
schedule
15.09.2014