package com.yuyh.library.utils; import android.annotation.TargetApi; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Build; /** * @author yuyh. * @date 16/4/9. */ public class AlarmUtils { /** * 开启定时器 */ @TargetApi(Build.VERSION_CODES.CUPCAKE) public static void startAlarmIntent(Context context, int triggerAtMillis, PendingIntent pendingIntent) { AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); manager.set(AlarmManager.RTC_WAKEUP, triggerAtMillis, pendingIntent); } /** * 关闭定时器 */ @TargetApi(Build.VERSION_CODES.CUPCAKE) public static void stopAlarmIntent(Context context, PendingIntent pendingIntent) { AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); manager.cancel(pendingIntent); } /** * 开启轮询服务 */ @TargetApi(Build.VERSION_CODES.CUPCAKE) public static void startAlarmService(Context context, int triggerAtMillis, Class<?> cls, String action) { Intent intent = new Intent(context, cls); intent.setAction(action); PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); startAlarmIntent(context, triggerAtMillis, pendingIntent); } /** * 停止启轮询服务 */ @TargetApi(Build.VERSION_CODES.CUPCAKE) public static void stopAlarmService(Context context, Class<?> cls, String action) { Intent intent = new Intent(context, cls); intent.setAction(action); PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); stopAlarmIntent(context, pendingIntent); } }