核心代码:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private ListView mListView;
//需要防止的游客名单(数据)
private String[] names={"9:30","10:00"};
private int minute;
private AlarmManager alarmManager;
//private int[] icons={R.drawable.qq,R.drawable.weixin};
private Button btn_set;
private Button btn_cancel;
private PendingIntent pi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bindViews();
}
private void bindViews() {
btn_set = (Button) findViewById(R.id.btn_set);
btn_cancel = (Button) findViewById(R.id.btn_cancel);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(MainActivity.this, ClockActivity.class);
pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
btn_set.setOnClickListener(this);
btn_cancel.setOnClickListener(this);
}
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_set:
Calendar currentTime = Calendar.getInstance();
//下面是一个时间对话框,用来设置闹钟时间
new TimePickerDialog(MainActivity.this, 0,
//下面这个参数是对话框完成后要做的事情。
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view,
int hourOfDay, int minute) {
//设置当前时间
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
// 根据用户选择的时间来设置Calendar对象
c.set(Calendar.HOUR, hourOfDay);
c.set(Calendar.MINUTE, minute);
// ②设置AlarmManager在Calendar对应的时间启动Activity
//在c.getTimeInMillis()的对应时间启动pi
alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi);
Log.e("HEHE",c.getTimeInMillis()+"");
//这里的时间是一个unix时间戳
// 提示闹钟设置完毕:
Toast.makeText(MainActivity.this, "闹钟设置完毕~"+ c.getTimeInMillis(),
Toast.LENGTH_SHORT).show();
Log.e("闹钟应该设置好了","");
}
},
//下面两个参数是设置时间对话框的默认初始时间
currentTime.get(Calendar.HOUR_OF_DAY),
currentTime.get(Calendar.MINUTE),
false).show();
btn_cancel.setVisibility(View.VISIBLE);
break;
case R.id.btn_cancel:
alarmManager.cancel(pi);
btn_cancel.setVisibility(View.GONE);
Toast.makeText(MainActivity.this, "闹钟已取消", Toast.LENGTH_SHORT)
.show();
break;
}
}
}
跳转之后的activity:
public class ClockActivity extends AppCompatActivity {
private MediaPlayer mediaPlayer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_clock);
//mediaPlayer = mediaPlayer.create(this,R.raw.pig);
//mediaPlayer.start();
//创建一个闹钟提醒的对话框,点击确定关闭铃声与页面
}
}