Суть такова: раз в 12 часов должен запуститься сервис, сделать кое-какие вычисления и отправить их на сервак.
Проблема такова: пару раз все отрабатывает отлично, потом глохнет. По логам видно, что не приходит вызов в мой ресивер, который обрабатывает интент AlarmManager и запускает сервис.
Вроде бы сделал все по правилам, чтобы телефон будился. Ниже код. Кто подскажет в чем проблема?
Метод, устанавливающий AlarmManager:
public void startStatisticSender() {
systemAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + STATISTIC_SENDER_INTERVAL,
STATISTIC_SENDER_INTERVAL, createStatisticIntent(STATISTIC_SENDER, KEY_SEND_STATISTIC));
}
private PendingIntent createStatisticIntent(int id, String action) {
Intent intent = new Intent(context, StatisticReceiver.class);
intent.setAction(action);
return PendingIntent.getBroadcast(context, id, intent, 0);
}
Ресивер:
public class StatisticReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(AlarmHelper.KEY_SEND_STATISTIC)) {
handleSendStatistic(context);
}
}
private void handleSendStatistic(Context context){
Intent intent = new Intent(context, StatisticService.class);
intent.setAction(StatisticService.KEY_SEND_STATISTIC);
startWakefulService(context, intent);
}