Android(安卓)使用AlarmManager设置闹钟
16lz
2022-03-17
package com.Aina.Android;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;/** * com.Aina.Android * Pro_AlarmManager * @author Aina.huang E-mail: 674023920@qq.com * @version 创建时间:2010 Jul 8, 2010 3:03:19 PM * 类说明 */public class AlamrReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubToast.makeText(context, "闹钟时间到", Toast.LENGTH_LONG).show();}}
package com.Aina.Android;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 Test extends Activity { /** Called when the activity is first created. */private TextView tv = null;private Button btn_set = null;private Button btn_cel = null;private Calendar c = null; @Override public void onCreate(Bundle savedInstanceState) { 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(new Button.OnClickListener(){public void onClick(View v) {// TODO Auto-generated method stubc.setTimeInMillis(System.currentTimeMillis());int hour = c.get(Calendar.HOUR_OF_DAY);int minute = c.get(Calendar.MINUTE);new TimePickerDialog(Test.this,new TimePickerDialog.OnTimeSetListener(){public void onTimeSet(TimePicker view, int hourOfDay,int minute) {// TODO Auto-generated method stubc.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);Intent intent = new Intent(Test.this,AlamrReceiver.class);PendingIntent pi = PendingIntent.getBroadcast(Test.this, 0, intent, 0);AlarmManager am = (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(new Button.OnClickListener(){public void onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent(Test.this,AlamrReceiver.class);PendingIntent pi = PendingIntent.getBroadcast(Test.this, 0, intent, 0);AlarmManager am = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);am.cancel(pi);tv.setText("闹钟取消");} }); }}
<?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"><TextView android:layout_width="fill_parent"android:id="@+id/TextView"android:layout_height="wrap_content" android:text="@string/hello" /><Button android:text="设置闹钟" android:id="@+id/Button01"android:layout_width="wrap_content"android:layout_height="wrap_content"></Button><Button android:text="取消闹钟" android:id="@+id/Button02"android:layout_width="wrap_content"android:layout_height="wrap_content"></Button></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.Aina.Android" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Test" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".AlamrReceiver" android:process=":remote"></receiver> </application></manifest>
更多相关文章
- Android对话框的几种形式
- Android(安卓)AlertDialog学习
- android 图片轮播(banner)无限轮播
- android异步操作AsyncTask编写文件查看器
- android菜单
- Android(安卓)WebView加载https网页(亲测)
- Android参数设置父布局集体宽高
- android studio debug签名设置
- [置顶] Android(安卓)Dialog的十种类型汇总