Android 使用AlarmManager设置闹钟

来源:互联网 发布:网上调车软件 编辑:程序博客网 时间:2024/05/16 10:47
  1. package com.Aina.Android;  
  2.   
  3. import android.content.BroadcastReceiver;  
  4. import android.content.Context;  
  5. import android.content.Intent;  
  6. import android.widget.Toast;  
  7.   
  8. /** 
  9.  * com.Aina.Android 
  10.  * Pro_AlarmManager 
  11.  * @author Aina.huang  E-mail: 674023920@qq.com 
  12.  * @version 创建时间:2010 Jul 8, 2010 3:03:19 PM  
  13.  * 类说明  
  14.  */  
  15. public class AlamrReceiver extends BroadcastReceiver {  
  16.   
  17.     @Override  
  18.     public void onReceive(Context context, Intent intent) {  
  19.         // TODO Auto-generated method stub  
  20.         Toast.makeText(context, "闹钟时间到", Toast.LENGTH_LONG).show();  
  21.     }  
  22.   
  23. }  


Java代码  收藏代码
  1. package com.Aina.Android;  
  2.   
  3. import java.util.Calendar;  
  4.   
  5. import android.app.Activity;  
  6. import android.app.AlarmManager;  
  7. import android.app.PendingIntent;  
  8. import android.app.TimePickerDialog;  
  9. import android.content.Intent;  
  10. import android.os.Bundle;  
  11. import android.view.View;  
  12. import android.widget.Button;  
  13. import android.widget.TextView;  
  14. import android.widget.TimePicker;  
  15.   
  16. public class Test extends Activity {  
  17.     /** Called when the activity is first created. */  
  18.     private TextView tv = null;  
  19.     private Button btn_set = null;  
  20.     private Button btn_cel = null;  
  21.     private Calendar c = null;  
  22.     @Override  
  23.     public void onCreate(Bundle savedInstanceState) {  
  24.         super.onCreate(savedInstanceState);  
  25.         setContentView(R.layout.main);  
  26.         tv = (TextView) this.findViewById(R.id.TextView);  
  27.         btn_set = (Button) this.findViewById(R.id.Button01);  
  28.         btn_cel = (Button) this.findViewById(R.id.Button02);  
  29.         c = Calendar.getInstance();  
  30.         btn_set.setOnClickListener(new Button.OnClickListener(){  
  31.   
  32.             public void onClick(View v) {  
  33.                 // TODO Auto-generated method stub  
  34.                 c.setTimeInMillis(System.currentTimeMillis());  
  35.                 int hour = c.get(Calendar.HOUR_OF_DAY);  
  36.                 int minute = c.get(Calendar.MINUTE);  
  37.                 new TimePickerDialog(Test.this,new TimePickerDialog.OnTimeSetListener(){  
  38.   
  39.                     public void onTimeSet(TimePicker view, int hourOfDay,  
  40.                             int minute) {  
  41.                         // TODO Auto-generated method stub  
  42.                         c.setTimeInMillis(System.currentTimeMillis());  
  43.                         c.set(Calendar.HOUR_OF_DAY, hourOfDay);  
  44.                         c.set(Calendar.MINUTE, minute);  
  45.                         c.set(Calendar.SECOND, 0);  
  46.                         c.set(Calendar.MILLISECOND, 0);  
  47.                         Intent intent = new Intent(Test.this,AlamrReceiver.class);  
  48.                         PendingIntent pi = PendingIntent.getBroadcast(Test.this0, intent, 0);  
  49.                         AlarmManager am = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);  
  50.                         am.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi);//设置闹钟  
  51.                         am.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), (10*1000), pi);//重复设置  
  52.                         tv.setText("设置的闹钟时间为:"+hourOfDay+":"+minute);  
  53.                     }  
  54.                       
  55.                 },hour,minute,true).show();  
  56.             }  
  57.               
  58.         });  
  59.         btn_cel.setOnClickListener(new Button.OnClickListener(){  
  60.   
  61.             public void onClick(View v) {  
  62.                 // TODO Auto-generated method stub  
  63.                 Intent intent = new Intent(Test.this,AlamrReceiver.class);  
  64.                 PendingIntent pi = PendingIntent.getBroadcast(Test.this0, intent, 0);  
  65.                 AlarmManager am = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);  
  66.                 am.cancel(pi);  
  67.                 tv.setText("闹钟取消");  
  68.             }  
  69.               
  70.         });  
  71.     }  
  72. }  


Java代码  收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical" android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent">  
  5.     <TextView android:layout_width="fill_parent"  
  6.         android:id="@+id/TextView"  
  7.         android:layout_height="wrap_content" android:text="@string/hello" />  
  8.     <Button android:text="设置闹钟" android:id="@+id/Button01"  
  9.         android:layout_width="wrap_content"  
  10.         android:layout_height="wrap_content">  
  11.     </Button>  
  12.     <Button android:text="取消闹钟" android:id="@+id/Button02"  
  13.         android:layout_width="wrap_content"  
  14.         android:layout_height="wrap_content">  
  15.     </Button>  
  16. </LinearLayout>  


Java代码  收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.       package="com.Aina.Android"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
  7.         <activity android:name=".Test"  
  8.                   android:label="@string/app_name">  
  9.             <intent-filter>  
  10.                 <action android:name="android.intent.action.MAIN" />  
  11.                 <category android:name="android.intent.category.LAUNCHER" />  
  12.             </intent-filter>  
  13.         </activity>  
  14.         <receiver android:name=".AlamrReceiver" android:process=":remote"></receiver>  
  15.     </application>  
  16.   
  17. </manifest>