Android手机闹钟用法实例
程序员文章站
2024-03-31 09:01:34
本文实例讲述了android手机闹钟用法。分享给大家供大家参考。具体如下:
一、开发手机闹钟主要用到了alarmmanager类,alarmmanager类提供了访问系统...
本文实例讲述了android手机闹钟用法。分享给大家供大家参考。具体如下:
一、开发手机闹钟主要用到了alarmmanager类,alarmmanager类提供了访问系统定时服务的途径,开发人员可以在程序中设置某个应用程序在未来的某个时刻被执行。当alarmmanager定时时间到了之后,当初注册的intent对象将会被系统广播,进而启动目标程序。
二、在程序运行时当需要使用alarmmanager类时,可以通过context对象的getsystemservice(context.alarm_service)方法来获得alarmmanager对象。
以下程序中使用时间选择对话框设置闹钟的时间。
main.xml布局文件:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <button android:id="@+id/btn" android:text="设置闹钟" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </linearlayout>
清单文件:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ljq.activity" android:versioncode="1" android:versionname="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".mainactivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name=".alarmactivity" /> <!-- android:process=":remote": 新开一个进程 --> <receiver android:name=".alarmreceiver" android:process=":remote"/> </application> <uses-sdk android:minsdkversion="7" /> </manifest>
alarmreceiver类:
package com.ljq.activity; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; public class alarmreceiver extends broadcastreceiver{ @override public void onreceive(context context, intent intent) { intent i=new intent(context, alarmactivity.class); i.addflags(intent.flag_activity_new_task); context.startactivity(i); } }
alarmactivity类:
package com.ljq.activity; import android.app.activity; import android.app.alertdialog; import android.content.dialoginterface; import android.content.dialoginterface.onclicklistener; import android.os.bundle; public class alarmactivity extends activity { @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); //显示对话框 new alertdialog.builder(alarmactivity.this). settitle("闹钟").//设置标题 setmessage("时间到了!").//设置内容 setpositivebutton("知道了", new onclicklistener(){//设置按钮 public void onclick(dialoginterface dialog, int which) { alarmactivity.this.finish();//关闭activity } }).create().show(); } }
mainactivity类:
package com.ljq.activity; import java.util.calendar; import android.app.activity; import android.app.alarmmanager; import android.app.dialog; import android.app.pendingintent; import android.app.timepickerdialog; import android.content.context; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.button; import android.widget.timepicker; import android.widget.toast; public class mainactivity extends activity{ private button btn=null; private alarmmanager alarmmanager=null; calendar cal=calendar.getinstance(); final int dialog_time = 0; //设置对话框id @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); alarmmanager=(alarmmanager)getsystemservice(context.alarm_service); btn=(button)findviewbyid(r.id.btn); btn.setonclicklistener(new view.onclicklistener(){ public void onclick(view view) { showdialog(dialog_time);//显示时间选择对话框 } }); } @override protected dialog oncreatedialog(int id) { dialog dialog=null; switch (id) { case dialog_time: dialog=new timepickerdialog( this, new timepickerdialog.ontimesetlistener(){ public void ontimeset(timepicker timepicker, int hourofday,int minute) { calendar c=calendar.getinstance();//获取日期对象 c.settimeinmillis(system.currenttimemillis()); //设置calendar对象 c.set(calendar.hour, hourofday); //设置闹钟小时数 c.set(calendar.minute, minute); //设置闹钟的分钟数 c.set(calendar.second, 0); //设置闹钟的秒数 c.set(calendar.millisecond, 0); //设置闹钟的毫秒数 intent intent = new intent(mainactivity.this, alarmreceiver.class); //创建intent对象 pendingintent pi = pendingintent.getbroadcast(mainactivity.this, 0, intent, 0); //创建pendingintent //alarmmanager.set(alarmmanager.rtc_wakeup, c.gettimeinmillis(), pi); //设置闹钟 alarmmanager.set(alarmmanager.rtc_wakeup, system.currenttimemillis(), pi); //设置闹钟,当前时间就唤醒 toast.maketext(mainactivity.this, "闹钟设置成功", toast.length_long).show();//提示用户 } }, cal.get(calendar.hour_of_day), cal.get(calendar.minute), false); break; } return dialog; } }
运行结果:
希望本文所述对大家的android程序设计有所帮助。
上一篇: Android实现音量调节的方法
推荐阅读