欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android自定义闹钟功能

程序员文章站 2023-12-16 10:32:10
android闹钟alarmmanager+pendingintent的使用方法,供大家参考,具体内容如下 这次给大家分享两种闹钟: 第一种是当到达闹钟时间后执行一...

android闹钟alarmmanager+pendingintent的使用方法,供大家参考,具体内容如下

这次给大家分享两种闹钟:

第一种是当到达闹钟时间后执行一次相应的操作

alarmmanager.set(alarmmanager.rtc_wakeup,c.gettimeinmillis(),pendingintent);

第二种是当到达闹钟时间后每隔一段时间执行操作

alarmmanager.setrepeating(alarmmanager.rtc_wakeup,c.gettimeinmillis(),5000, pendingintent);

下面看效果图:

Android自定义闹钟功能

设置两种闹钟

Android自定义闹钟功能

选择闹钟时间

Android自定义闹钟功能

闹钟一到打开一个界面

下面看代码:

public class alarm2activity extends appcompatactivity {

 private alarmmanager alarmmanager;
 private pendingintent pendingintent;
 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.activity_alarm2);
 //实例化闹钟个管理器
 alarmmanager = (alarmmanager) getsystemservice(context.alarm_service);

 }

 //设置闹钟(只响一次)
 public void startalarmone(view view){
 //获取当前系统的时间
 calendar calendar=calendar.getinstance();
 int hour=calendar.get(calendar.hour_of_day);
 int minute=calendar.get(calendar.minute);

 //弹出时间对话框(选择时间)
 timepickerdialog timepickerdialog=new timepickerdialog(this, new timepickerdialog.ontimesetlistener() {
  @override
  public void ontimeset(timepicker timepicker, int i, int i1) {
  //获取当前系统的时间
  calendar c=calendar.getinstance();
  c.set(calendar.hour_of_day,i);
  c.set(calendar.minute,i1);
  //打开一个activity
  intent intent=new intent();
  intent.setaction("com.example.myandroid_27.alarm");
  pendingintent pendingintent= pendingintent.getbroadcast(alarm2activity.this,0x101,intent,0);
  //设置闹钟
  alarmmanager.set(alarmmanager.rtc_wakeup,c.gettimeinmillis(),pendingintent);
  }
 },hour,minute,true);
 timepickerdialog.show();
 }
 //设置闹钟(在多长时间后闹钟响然后继续计时)
 public void startalarmtwo(view view){
 //获取当前系统的时间
 calendar calendar=calendar.getinstance();
 int h=calendar.get(calendar.hour_of_day);
 int m=calendar.get(calendar.minute);
 //弹出时间对话框(选择时间)
 timepickerdialog timepickerdialog=new timepickerdialog(this, new timepickerdialog.ontimesetlistener() {
  @override
  public void ontimeset(timepicker timepicker, int i, int i1) {
  //获取选择的闹钟时间
  calendar c=calendar.getinstance();
  c.set(calendar.hour_of_day,i);
  c.set(calendar.minute,i1);
  //打开一个activity
  intent intent=new intent();
  intent.setaction("com.example.myandroid_27.alarm");
  pendingintent = pendingintent.getbroadcast(alarm2activity.this,0x102,intent,0);
  //闹钟什么时候继续执行
  alarmmanager.setrepeating(alarmmanager.rtc_wakeup,c.gettimeinmillis(),5000, pendingintent);
  }
 },h,m,true);
 timepickerdialog.show();
 }
 //关闭周期闹钟
 public void startalarmthree(view view){
 alarmmanager.cancel(pendingintent);
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

上一篇:

下一篇: