Android定时器的用法

来源:互联网 发布:贵州广电网络维修电话 编辑:程序博客网 时间:2024/06/05 02:19
  1.    /** 
  2.      * 当我们设置了新时间时触发。 
  3.      */  
  4.     @Override  
  5.     public void onTimeSet(TimePicker view, int hourOfDay, int minute) {  
  6.           
  7.         // 将时间设置为定时的时间  
  8.         calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);  
  9.         calendar.set(Calendar.MINUTE, minute);  
  10.           
  11.         Intent intent = new Intent(AlarmManagerActivity.this,MyAlarmBroadCast.class);  
  12.         PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);  
  13.           
  14.         /*** 
  15.          * 获取全局定时器的服务管理器 
  16.          */  
  17.         AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);  
  18.       
  19.         if(flag){  
  20.               
  21.           
  22.         /** 
  23.          * 指定的任务只会执行一次,如果该pendingIntent指定的任务已经被执行过了,那么该方法直接会被cancel掉。 
  24.          *  set(int type, long triggerAtTime, PendingIntent operation) 
  25.          *  type 指定定时模式。 
  26.          *  triggerAtTime 触发任务的时间。该参数和定时模式息息相关 
  27.          *  operation 该参数指定一个广播Intent,当时间到了时,系统会广播里面的intent,触发相应的广播接收者执行某些操作,比如响铃…… 
  28.          */  
  29.         alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);  
  30.         }  
  31.         else  
  32.         {  
  33.             /** 
  34.              * 通过该方法指定的任务会一直间隔执行,第三个参数就指定了执行的时间间隔 
  35.              * 如果我们想取消的话,请使用:alarmManager.cancel(pendingIntent); 
  36.              * 注意,这里的pendingIntent要和setRepeating方法中的一致哦。 
  37.              */  
  38.             alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 5*1000, pendingIntent);    
  39.         }  
  40.         Log.i("通知""定时成功!");  
  41.           
  42.     }  
  43.