У меня есть случай, когда мне нужно запустить какое-то не-пользовательское действие N секунд после того, как питание было подключено к устройству.Это действие также может быть запущено пользователем через пользовательский интерфейс.
У меня есть BroadcastReceiver, определенный в AndroidManifest.xml , который прослушивает ACTION_POWER_CONNECTED .
Iесть служба, которая выполняет необходимые действия на onStartCommand .Мой вопрос - как правильно запустить эту службу в случае, когда действие запускается трансляцией?
Я имею в виду два варианта:
One-Задача таймера выстрела.Однако я думаю, что это может быть неправильно, потому что, согласно документам, я не смог запустить какие-либо асинхронные задачи из BroadcastReceiver.
Редизайн сервиса:
- запускать действие по onStartCommand , если действие было инициировано пользователем
- запускать таймери выполнять действие при срабатывании таймера - та же логика, что и в 1., но внутри службы - если действие было инициировано трансляцией.
Я склонен к 2. Это сделает коднемного сложнее, но, кажется, это только правильный путь.
-Lev