80,351
社区成员
发帖
与我相关
我的任务
分享
public class MainActivity extends Activity {
private Button btn;
private final static String tag_one = "ALARM_ONE";
private final static String tag_two = "ALARM_TWO";
private final static int requestcode_1 =1;
private final static int requestcode_0 =0;
private Alarm alarm;
private MyBroadcastReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) this.findViewById(R.id.button1);
btn.setOnClickListener(btnlistener);
alarm = new Alarm(this ,18 ,50 ,tag_one ,requestcode_0);
alarm.setReminder();
alarm = new Alarm(this ,18 ,51 ,tag_two ,requestcode_1);
alarm.setReminder();
}
private OnClickListener btnlistener = new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
alarm.closealarm(MainActivity.this,requestcode_1);
}};
public class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals(tag_one)){
Toast.makeText(context, "第一个闹钟响了!", Toast.LENGTH_LONG).show();
alarm.closealarm(MainActivity.this,requestcode_0);
}
if(intent.getAction().equals(tag_two)){
Toast.makeText(context, "第二个闹钟响了!", Toast.LENGTH_LONG).show();
alarm.closealarm(MainActivity.this,requestcode_1);
}
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
receiver=new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(tag_one); //动态注册BroadcastReceiver
filter.addAction(tag_two);
registerReceiver(receiver, filter);
super.onResume();
}
}
public class Alarm {
private Context context;
private int hourOfDay;
private int minute;
private String tag;
public int ruquest;
public Alarm(Context context ,int hour ,int minute ,String tag ,int requestcode){
this.context = context;
this.hourOfDay = hour;
this.minute = minute;
this.tag = tag;
this.ruquest = requestcode;
}
public void setReminder(){
AlarmManager mAlarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent();
intent.setAction(tag);
PendingIntent pending = PendingIntent.getBroadcast(context, ruquest, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
mAlarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pending);
}
public void closealarm(Context context ,int request){
AlarmManager mAlarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent();
PendingIntent pending = PendingIntent.getBroadcast(context, request, intent, 0);
mAlarm.cancel(pending);
}
}