package com.talk.demo.util;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.talk.demo.daily.UpdateReceiver;
public class AlarmManagerUtil {
private static String TAG = "AlarmManagerUtil";
public static AlarmManager getAlarmManager(Context ctx) {
return (AlarmManager) ctx.getSystemService(Context.ALARM_SERVICE);
}
/**
* 指定时间后进行消息发送 注意: Receiver记得在manifest.xml中注册
*
* @param ctx
*/
public static void sendUpdateBroadcast(Context ctx, int milseconds) {
Log.i(TAG, "send to start update broadcase,delay time :" + milseconds);
AlarmManager am = getAlarmManager(ctx);
// milseconds 后将产生广播,触发UpdateReceiver的执行,这个方法才是真正的更新数据的操作主要代码
Intent mIntent = new Intent(ctx, UpdateReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(ctx, 0, mIntent, 0);
am.set(AlarmManager.RTC, System.currentTimeMillis() + milseconds, pendingIntent);
}
/**
* 取消定时执行(有如闹钟的取消)
*
* @param ctx
*/
public static void cancelUpdateBroadcast(Context ctx) {
AlarmManager am = getAlarmManager(ctx);
Intent mIntent = new Intent(ctx, UpdateReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(ctx, 0, mIntent, 0);
am.cancel(pendingIntent);
}
}