Я использую WakefulIntentService Commonsware (https://github.com/commonsguy/cwac-wakeful) для запуска периодического задания в моем приложении для Android (обновление кеша изображений). Пока все хорошо, но я хочу добавить другой WakefulIntentService, чтобы выполнять другую работу с другим интервалом времени.
Я не уверен, смогу ли я это сделать и как. На данный момент я планирую будильник следующим образом:
WakefulIntentService.scheduleAlarms(new CacheAlarmListener(), mContext, true);
Реализация CacheAlarmListener такова:
@Override
public void scheduleAlarms(AlarmManager alarmManager, PendingIntent pendingIntent, Context context) {
alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 60000, AlarmManager.INTERVAL_HALF_HOUR, pendingIntent);
}
@Override
public void sendWakefulWork(Context context) {
WakefulIntentService.sendWakefulWork(context, CacheRefreshService.class);
}
Просматривая исходный код, getListener(Context) из AlarmReceiver
похоже находит и запускает один AlarmListener. Я ошибаюсь, или есть другой способ запланировать будильник или установить другой PendingIntent?
В принципе, я хотел бы иметь возможность зарегистрировать новый, отдельный AlarmListener
, или хотя бы иметь возможность выяснить, на какой WakefulIntentService
отправить работу, в методе sendWakefulWork(Context)
.