首先我们声明一个闹钟的管理
AlarmManager manager;
然后获得这个实例:
manager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);设置闹钟是需要一个pendingIntent所以我们先创建一个出来
Intent intent = new Intent(MainActivity.this,SetAlarmActivity.class); final PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent,0);然后进入正文设置闹钟:
btn_open.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //设置系统时间 Calendar currentTime = Calendar.getInstance(); new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { //设置当前时间 Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.MINUTE,minute); manager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent); Toast.makeText(MainActivity.this,"闹钟设置好了",Toast.LENGTH_SHORT).show(); } },currentTime.get(Calendar.HOUR_OF_DAY),currentTime.get(Calendar.MINUTE),false).show(); } }); btn_close.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { manager.cancel(pendingIntent); Toast.makeText(MainActivity.this,"闹钟已关闭",Toast.LENGTH_SHORT).show(); } });点击按钮设置闹钟时间,到时之后会跳到另一个界面展示dialog:
//播放闹钟提示音 final MediaPlayer mediaPlayer = MediaPlayer.create(this,R.raw.mei); //是否循环播放 mediaPlayer.setLooping(true); //启动 mediaPlayer.start(); //创建一个dialog AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("闹钟"); builder.setIcon(R.mipmap.ic_launcher); builder.setMessage("闹钟时间到了"); builder.setNegativeButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { mediaPlayer.stop(); SetAlarmActivity.this.finish(); } }); AlertDialog dialog = builder.create(); dialog.show();这样闹钟就好了,
我们再写一个按钮用来实现点击关闭闹钟:
btn_close.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { manager.cancel(pendingIntent); Toast.makeText(MainActivity.this,"闹钟已关闭",Toast.LENGTH_SHORT).show(); } });