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程序设计有所帮助。