AlarmManager闹钟管理器

闹钟实现步骤

闹钟分二种

  • 单次,响铃一次即结束

  • 周期,响铃一段时间后,再继续

管理类的一些方法

方法注释
(AlarmManager) getSystemService(Context.ALARM_SERVICE);从上下文内取到 闹钟的管理器
PendingIntent.getBroadcast(getApplicationContext(),0x11,intent,0);参数一: 上下文 参数二: 请求码 十二进制,0x11之类的 参数三: 要调用的接受程序 参数四:标志位 0即可
闹钟管理对象.set(AlarmManager.RTC_WAKEUP,SetUpThecalendar.getTimeInMillis(),pendingIntent);RTC_WAKEUP(闹钟响铃、会把手机屏幕唤醒) 参数二:闹钟响铃时间点(未来点) 参数三:闹钟 操作
闹钟管理对象.setRepeating(AlarmManager.RTC_WAKEUP,SetUpThecalendar.getTimeInMillis(),6000,pendingIntent);//与上面 单次 基本相同,参数三:间隔多久,再次响铃


实现,的代码

  • 步骤
    • 先,建立第一个日历类,对象,用来给时间对话框设置定值
    • 建立时间对话框,并设定时间
    • 取到,闹钟管理类对象,再建立一个日历类,用来设定你设置后的时间
    • 设定,闹钟的类型
    • 设置,时间对话框,显示
  //设置 闹钟 方法
    public void setAlarm_(final boolean choice){
        //日历类,用来,设置时间对话框
        Calendar calendar=Calendar.getInstance();

        //建立时间对话框  参数一:上下文  参数二:对话框,选着监听事件   参数三: 对话框内显示的,小时
        // 参数四: 对话框,显示的 分钟   参数五: 是否是24小时制
        TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override //参数一: 时间对话框  参数二: 你设置的小时   参数三:你设置的秒
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                //从上下文内取到  闹钟的管理器
                AlarmManager alarmManager= (AlarmManager) getSystemService(Context.ALARM_SERVICE);

                //取设置的时间,和当前时间,相差的毫秒
                Calendar SetUpThecalendar=Calendar.getInstance();

                //设置,你选择的 小时
                SetUpThecalendar.set(Calendar.HOUR_OF_DAY,hourOfDay);
                //设置,你选择的分钟
                SetUpThecalendar.set(Calendar.MINUTE,minute);

                //建立未来式  闹钟
                //它有多种方法,
                // getBroadcast()  通过广播
                //getService()  通过服务
                // getActivity()  通过activity


                //跳转到,的接受广播, 可以理解为(频率)
                Intent intent=new Intent("com.example.myapplication_alarm.AlarmBroadcast.Receive");

                //参数一: 上下文   参数二: 请求码 十二进制,0x11之类的
                //参数三: 要调用的接受程序  参数四:标志位 0即可
                PendingIntent pendingIntent= PendingIntent.getBroadcast(getApplicationContext(),0x11,intent,0);//操作


                if(choice){//为真时, 一次性,闹钟
                    //参数一:闹钟类型,闹钟管理器.RTC_WAKEUP(闹钟响铃、会把手机屏幕唤醒)
                    //参数二:闹钟响铃时间点(未来点)  就是说,什么是闹钟响。  从格林尼治时间到,你选中时间对话框之间相隔的总毫秒数
                    //参数三:闹钟 操作
                    alarmManager.set(AlarmManager.RTC_WAKEUP,SetUpThecalendar.getTimeInMillis(),pendingIntent);
                }else{//设置为,重复闹钟
                    //与上面  单次  基本相同,参数三:间隔多久,再次响铃
                    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,SetUpThecalendar.getTimeInMillis(),6000,pendingIntent);
                }

            }
        },calendar.get(Calendar.HOUR_OF_DAY),calendar.get(Calendar.MINUTE),true);


        //显示,时间 对话框
        timePickerDialog.show();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值