AlarmManager(闹钟服务)

核心代码:




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();
        //创建一个闹钟提醒的对话框,点击确定关闭铃声与页面

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值