Я написал простое приложение, в котором есть действие и служба (запускается на переднем плане). Служба должна выполнять периодическую работу, поэтому я создаю обработчик и периодически отправляю сообщение обработчика.
class ServiceHandler extends Handler {
public ServiceHandler(Looper looper) {
super();
}
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
// do my job here
this.sendEmptyMessageDelayed(1, 15000);
}
}
}
Я думаю, что моя работа должна выполняться каждые 15 секунд и никогда не заканчиваться, пока моя служба не будет убита пользователем.
но когда я выхожу из активности (длительное нажатие клавиши меню, сметает активность) и выключаю экран. Кажется, моя работа выполняется со случайным интервалом (все дольше, чем 15 с), иногда даже дольше, чем 1 минута.
Я думаю, что это, вероятно, связано с политикой энергопотребления системы Android.
как я могу заставить свою работу выполняться с фиксированным интервалом в таких обстоятельствах. Пожалуйста, помогите.