Я использую AlarmManager
для транзакций обновления виджета. У меня есть разные значения интервала, такие как 5, 10, 15, 30 минут и т. Д.
Как позвонить AlarmManager
:
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyService.class);
pi = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
// Interval value, default 600 (600*1000 -> 10 min)
Long repeat = Long.parseLong(prefs.getString("update_preference", "600"));
// Set the manager
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 1000*repeat, pi);
Итак, если пользователь выбирает 5 или 10 минут, все в порядке. Но если нет, я имею в виду, что пользователь выбирает большие значения, такие как 15, 30, 60 минут, MyService
не работает, как только setRepetaing
.
Какая разница или неправда?
Редактировать: он работает мгновенно ‹30 минут, но теперь работает более 30 минут с уникальными кодами запросов.