Android(安卓)使用AlarmManager设置闹钟
16lz
2022-04-18
- 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();
- }
- }
Java代码
- 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("闹钟取消");
- }
- });
- }
- }
Java代码
- <?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>
Java代码
- <?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>
更多相关文章
- android典型代码系列(六)------drawable图片转换为48dip的bitmap
- Android(安卓)全屏
- Android(安卓)OKHttp3 超时设置和异常捕获
- android 学习笔记有用代码片段(1)
- Android(安卓)设置字体大小和显示大小后界面混乱
- Android(安卓)采用代码编写ui
- android 动态设置控件大小
- android dialog使用小结
- android 常用代码