alarm manager的创建 与取消

再次标记一下 alamr manager的创建
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ac01 app = ac01.getApp();
app.btEvent("from AlarmReceiver");
}
}
//添加alarm
    private boolean StartAlarm(int id,int hour,int minute)
    {
	Calendar calendar = Calendar.getInstance();
	calendar.setTimeInMillis(System.currentTimeMillis());
	calendar.add(Calendar.SECOND, 10);
	//calendar.add(Calendar.HOUR_OF_DAY, hour);
	//calendar.add(Calendar.MINUTE, minute);
	    /* 指定闹钟设置时间到时要运行CallAlarm.class */
	Intent intent = new Intent(NotificationList.this, CallAlarm.class);
	/* 创建PendingIntent */
	 intent.putExtra("id1", id);
	PendingIntent sender=PendingIntent.getBroadcast(
	    	NotificationList.this,id, intent,PendingIntent.FLAG_CANCEL_CURRENT);
	/* AlarmManager.RTC_WAKEUP设置服务在系统休眠时同样会运行 
	 * 以set()设置的PendingIntent只会运行一次
	* */
	 AlarmManager am;
	 am = (AlarmManager)getSystemService(ALARM_SERVICE);
	 am.set(AlarmManager.RTC_WAKEUP,
	    		calendar.getTimeInMillis(),
	           sender
	          ); 
	    return true;
    }
//取消alarm 
    private boolean CancleAlarm(int ID)
    {
    	 Intent intent = new Intent(NotificationList.this, CallAlarm.class);
 	    /* 创建PendingIntent */
 	    PendingIntent pendingIntent=PendingIntent.getBroadcast(
 	    		NotificationList.this,ID, intent, 0);
 	   AlarmManager am;
 	   am = (AlarmManager)getSystemService(ALARM_SERVICE);
 	   am.cancel(pendingIntent);
		return true;   	
    }
//接收参数
int id1=intent.getIntExtra("id1", 0);

你可能感兴趣的:(manager)