本文实例讲述了AndroID编程闹钟设置方法。分享给大家供大家参考,具体如下:
闹钟在生活中最常见了,在AndroID中可以通过AlarmManager来实现闹钟,AlarmManager类专门用来设置在某个指定的时间去完成指定的时间。AlarmManager就会通过onReceive()方法去执行这些事件,就算系统处于待机状态,同样不会影响运行。可以通过Context.getSystemService方法来获得该服务。AlarmManager中的方法不少,如下:
方法 | 说明 |
Cancel | 取消AlarmManager服务 |
Set | 设置服务 |
setInexactRepeating | 设置不精确周期 |
SetRepeating | 设置重复周期 |
setTimeZone | 设置时区 |
要实现闹钟,首先需要创建一个继承自broadcastReceiver的类,实现onReceive方法来接受这个Alarm服务,然后通过建立Intent和PendingIntent连接来调用Alarm组件。通过TimerPickerDialog来设置闹铃时间,当时间到了我们指定的时间后onReceiver方法接受到Alarm服务后的界面。
首先实现接受Alarm服务的AlarmReceiver类,用Toast类提示用户
public class AlarmReceiver extends broadcastReceiver { @OverrIDe public voID onReceive(Context arg0,Intent arg1) { // Todo auto-generated method stub Toast.makeText(arg0,"你设置的闹铃时间到了",Toast.LENGTH_LONG).show(); }}
由于使用了broadcastReceiver服务,因此需要再AndroIDManifest.xml中进行声明:
<receiver androID:name=".AlarmReceiver" androID:process=":remote"></receiver>
然后需要设置闹铃和取消闹铃的时间进行监听:
package cn.edu.pku;import java.util.Calendar;import androID.app.Activity;import androID.app.AlarmManager;import androID.app.PendingIntent;import androID.app.TimePickerDialog;import androID.content.Intent;import androID.os.Bundle;import androID.vIEw.VIEw;import androID.Widget.button;import androID.Widget.TextVIEw;import androID.Widget.TimePicker;public class AlarmActivity extends Activity { /** Called when the activity is first created. */ button mbutton1; button mbutton2; TextVIEw mTextVIEw; Calendar calendar; @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); calendar=Calendar.getInstance(); mTextVIEw=(TextVIEw)findVIEwByID(R.ID.TextVIEw01); mbutton1=(button)findVIEwByID(R.ID.button01); mbutton2=(button)findVIEwByID(R.ID.button02); mbutton1.setonClickListener(new VIEw.OnClickListener() { public voID onClick(VIEw v) { // Todo auto-generated method stub calendar.setTimeInMillis(System.currentTimeMillis()); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); new TimePickerDialog(AlarmActivity.this,new TimePickerDialog.OnTimeSetListener() { public voID onTimeSet(TimePicker vIEw,int hourOfDay,int minute) { // Todo auto-generated method stub calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY,hourOfDay); calendar.set(Calendar.MINUTE,minute); calendar.set(Calendar.SECOND,0); calendar.set(Calendar.MILliSECOND,0); Intent intent = new Intent(AlarmActivity.this,AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getbroadcast(AlarmActivity.this,intent,0); AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis() + (10 * 1000),(24 * 60 * 60 * 1000),pendingIntent); String tmps = "设置闹钟时间为" + format(hourOfDay) + ":" +format(minute); mTextVIEw.setText(tmps); } },hour,minute,true).show(); } }); mbutton2.setonClickListener(new VIEw.OnClickListener() { public voID onClick(VIEw v) { // Todo auto-generated method stub Intent intent = new Intent(AlarmActivity.this,AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getbroadcast(AlarmActivity.this,0); AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); alarmManager.cancel(pendingIntent); mTextVIEw.setText("闹铃已取消!"); } }); } private String format(int time){ String str = "" + time; if(str.length() == 1){ str = "0" + str; } return str; }}
效果如下:
设置闹铃
现在时间到设置闹铃的时间:
取消闹铃:
更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android日期与时间 *** 作技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体 *** 作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家AndroID程序设计有所帮助。
总结以上是内存溢出为你收集整理的Android编程闹钟设置方法详解全部内容,希望文章能够帮你解决Android编程闹钟设置方法详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)