Android中Alarm的使用
创始人
2024-07-30 18:11:12
0

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.    
  2. android:orientation="vertical" android:layout_width="fill_parent"   
  3. android:layout_height="fill_parent">   
  4. android:id="@+id/TextView"   
  5. android:layout_height="wrap_content" android:text="@string/hello" />   
  6. android:layout_width="wrap_content"   
  7. android:layout_height="wrap_content">   
  8.    
  9. android:layout_width="wrap_content"   
  10. android:layout_height="wrap_content">   
  11.    
  12.  

Java代码:

  1.    
  2. package="eoe.demo"   
  3. android:versionCode="1"   
  4. android:versionName="1.0">   
  5.    
  6. android:label="@string/app_name">   
  7.    
  8.    
  9.    
  10.    
  11.    
  12.    
  13.    
  14.  

【编辑推荐】

Android开发中插入新的Activity

Android 多任务多线程断点下载

Android开发之旅:Android架构

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

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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...