- /**
- * 当我们设置了新时间时触发。
- */
- @Override
- public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
- // 将时间设置为定时的时间
- calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
- calendar.set(Calendar.MINUTE, minute);
- Intent intent = new Intent(AlarmManagerActivity.this,MyAlarmBroadCast.class);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
- /***
- * 获取全局定时器的服务管理器
- */
- AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
- if(flag){
- /**
- * 指定的任务只会执行一次,如果该pendingIntent指定的任务已经被执行过了,那么该方法直接会被cancel掉。
- * set(int type, long triggerAtTime, PendingIntent operation)
- * type 指定定时模式。
- * triggerAtTime 触发任务的时间。该参数和定时模式息息相关
- * operation 该参数指定一个广播Intent,当时间到了时,系统会广播里面的intent,触发相应的广播接收者执行某些操作,比如响铃……
- */
- alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
- }
- else
- {
- /**
- * 通过该方法指定的任务会一直间隔执行,第三个参数就指定了执行的时间间隔
- * 如果我们想取消的话,请使用:alarmManager.cancel(pendingIntent);
- * 注意,这里的pendingIntent要和setRepeating方法中的一致哦。
- */
- alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 5*1000, pendingIntent);
- }
- Log.i("通知", "定时成功!");
- }
Android定时器的用法
最新推荐文章于 2022-08-09 14:37:09 发布