AlarmManager闹钟管理器

来源:互联网 发布:大排畸哪些数据看男女 编辑:程序博客网 时间:2024/06/05 09:45

闹钟实现步骤

闹钟分二种

  • 单次,响铃一次即结束

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

管理类的一些方法

方法 注释 (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();    }