package com.jdroid.android.utils; import org.slf4j.Logger; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import com.jdroid.android.application.AbstractApplication; import com.jdroid.java.date.DateUtils; import com.jdroid.java.utils.LoggerUtils; public class AlarmUtils { private final static Logger LOGGER = LoggerUtils.getLogger(AlarmUtils.class); public static void scheduleRtcWakeUpAlarm(long triggerAtTime, PendingIntent operation) { getAlarmManager().set(AlarmManager.RTC_WAKEUP, triggerAtTime, operation); log("RTC_WAKEUP", triggerAtTime); } public static void scheduleRtcAlarm(long triggerAtTime, PendingIntent operation) { getAlarmManager().set(AlarmManager.RTC, triggerAtTime, operation); log("RTC", triggerAtTime); } public static void scheduleElapsedRealtimeWakeUpAlarm(long triggerAtTime, PendingIntent operation) { getAlarmManager().set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, operation); log("ELAPSED_REALTIME_WAKEUP", triggerAtTime); } public static void scheduleElapsedRealtimeAlarm(long triggerAtTime, PendingIntent operation) { getAlarmManager().set(AlarmManager.ELAPSED_REALTIME, triggerAtTime, operation); log("ELAPSED_REALTIME", triggerAtTime); } private static void log(String alarmType, long triggerAtTime) { LOGGER.debug("Created " + alarmType + " alarm for " + DateUtils.formatDateTime(DateUtils.getDate(triggerAtTime))); } public static void cancelAlarm(PendingIntent operation) { getAlarmManager().cancel(operation); } private static AlarmManager getAlarmManager() { Context context = AbstractApplication.get(); return (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); } }