Android中Alarm的使用

移动开发 Android
本文介绍的是用AlarmManager来设置自己的闹钟,不要忘记用到的类,本文由提到,希望对你有帮助!

AlarmManager来设置自己的闹钟,其中我们主要用到的类有

  1. import android.app.AlarmManager;    
  2. import android.app.PendingIntent;    
  3. import android.app.TimePickerDialog;   

这三个是我们必须要用到的类,大家可要记住呀,可不能用错包呀,还有就是最重要的一点,也是大家容易忘了的一点,我们一定要加上权限,这样我们才能顺利的实现我们想要的效果,代码如下:

java代码:

  1. package eoe.demo;   
  2. import android.content.BroadcastReceiver;   
  3. import android.content.Context;   
  4. import android.content.Intent;   
  5. import android.widget.Toast;   
  6. public class AlamrReceiver extends BroadcastReceiver {   
  7. @Override   
  8. public void onReceive(Context context, Intent intent) {   
  9. // TODO Auto-generated method stub   
  10. Toast.makeText(context, "闹钟时间到", Toast.LENGTH_LONG).show();   
  11. }   

Java代码:

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

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="eoe.demo"   
  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. </manifest> 

【编辑推荐】

Android开发中插入新的Activity

Android 多任务多线程断点下载

Android开发之旅:Android架构

常用的Android指令和模拟器参数

在Android应用程序中使用Internet数据

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-05-27 11:34:53

Android preference

2011-11-23 09:54:32

AndroidAlarm

2013-03-28 16:31:48

AIDL的简单使用Android中AID

2009-05-30 09:29:52

AndroidGoogle移动OS

2017-05-24 09:43:42

2013-06-08 17:09:35

Android开发移动开发XML解析

2013-02-19 13:42:30

Android开发string

2013-03-27 09:47:01

Android开发SQAndroid SDK

2023-12-07 08:22:58

Android应用

2013-04-15 09:48:40

AndroidAVD错误处理方法

2015-01-07 14:41:32

Android全局变量局部变量

2011-05-30 17:31:51

Android 模拟SD卡

2011-06-01 14:20:06

Android Selector

2010-02-03 15:59:08

Android组件

2016-03-25 10:21:22

androidIntentServi代码

2017-02-08 12:28:37

Android变量总结

2011-02-16 09:57:41

2024-06-27 08:26:10

LooperAndroid内存

2014-08-07 10:06:05

ndroidContext

2017-05-15 19:40:40

AndroidIPC机制
点赞
收藏

51CTO技术栈公众号