Android编程使用AlarmManager设置闹钟的方法
本文实例讲述了Android编程使用AlarmManager设置闹钟的方法。分享给大家供大家参考,具体如下:
packagecom.Aina.Android; importandroid.content.BroadcastReceiver; importandroid.content.Context; importandroid.content.Intent; importandroid.widget.Toast; /** *com.Aina.Android *Pro_AlarmManager *@authorAina.huangE-mail:674023920@qq.com *@version创建时间:2010Jul8,20103:03:19PM *类说明 */ publicclassAlamrReceiverextendsBroadcastReceiver{ @Override publicvoidonReceive(Contextcontext,Intentintent){ //TODOAuto-generatedmethodstub Toast.makeText(context,"闹钟时间到",Toast.LENGTH_LONG).show(); } }
packagecom.Aina.Android; importjava.util.Calendar; importandroid.app.Activity; importandroid.app.AlarmManager; importandroid.app.PendingIntent; importandroid.app.TimePickerDialog; importandroid.content.Intent; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.Button; importandroid.widget.TextView; importandroid.widget.TimePicker; publicclassTestextendsActivity{ /**Calledwhentheactivityisfirstcreated.*/ privateTextViewtv=null; privateButtonbtn_set=null; privateButtonbtn_cel=null; privateCalendarc=null; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); tv=(TextView)this.findViewById(R.id.TextView); btn_set=(Button)this.findViewById(R.id.Button01); btn_cel=(Button)this.findViewById(R.id.Button02); c=Calendar.getInstance(); btn_set.setOnClickListener(newButton.OnClickListener(){ publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub c.setTimeInMillis(System.currentTimeMillis()); inthour=c.get(Calendar.HOUR_OF_DAY); intminute=c.get(Calendar.MINUTE); newTimePickerDialog(Test.this,newTimePickerDialog.OnTimeSetListener(){ publicvoidonTimeSet(TimePickerview,inthourOfDay, intminute){ //TODOAuto-generatedmethodstub c.setTimeInMillis(System.currentTimeMillis()); c.set(Calendar.HOUR_OF_DAY,hourOfDay); c.set(Calendar.MINUTE,minute); c.set(Calendar.SECOND,0); c.set(Calendar.MILLISECOND,0); Intentintent=newIntent(Test.this,AlamrReceiver.class); PendingIntentpi=PendingIntent.getBroadcast(Test.this,0,intent,0); AlarmManageram=(AlarmManager)getSystemService(Activity.ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pi);//设置闹钟 am.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),(10*1000),pi);//重复设置 tv.setText("设置的闹钟时间为:"+hourOfDay+":"+minute); } },hour,minute,true).show(); } }); btn_cel.setOnClickListener(newButton.OnClickListener(){ publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub Intentintent=newIntent(Test.this,AlamrReceiver.class); PendingIntentpi=PendingIntent.getBroadcast(Test.this,0,intent,0); AlarmManageram=(AlarmManager)getSystemService(Activity.ALARM_SERVICE); am.cancel(pi); tv.setText("闹钟取消"); } }); } }
<?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextViewandroid:layout_width="fill_parent" android:id="@+id/TextView" android:layout_height="wrap_content"android:text="@string/hello"/> <Buttonandroid:text="设置闹钟"android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> <Buttonandroid:text="取消闹钟"android:id="@+id/Button02" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </LinearLayout>
AndroidManifest.xml:
<?xmlversion="1.0"encoding="utf-8"?> <manifestxmlns:android="http://schemas.android.com/apk/res/android" package="com.Aina.Android" android:versionCode="1" android:versionName="1.0"> <applicationandroid:icon="@drawable/icon"android:label="@string/app_name"> <activityandroid:name=".Test" android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <receiverandroid:name=".AlamrReceiver"android:process=":remote"></receiver> </application> </manifest>
PS:关于AndroidManifest.xml文件相关属性功能可参考本站在线工具:
AndroidManifest功能与权限描述大全:
http://tools.jb51.net/table/AndroidManifest
希望本文所述对大家Android程序设计有所帮助。