android 程序中 经常用到的几种定时器上片说到了 需要用1个 定时器去 动态的绘制。定时器 - 也就是个你设置
android 程序中 经常用到的几种定时器
上片说到了 需要用1个 定时器去 动态的绘制。
定时器 - 也就是个 你设置了时间 比如 3秒重复1个操作, 那么当你设置好 开启后, “他” 就会帮你完成这个重复任务,除非各种情况制止“他”停止
/** * alarm - 这个能保持程序一直处于唤醒的状态 也就是说 拔出USB 待机 等 */{AlarmManager alarmManager = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);//PendingIntent pending = PendingIntent.getActivities(context, requestCode, intents, flags) //PendingIntent pending = PendingIntent.getActivity(context, requestCode, intent, flags) //PendingIntent pending = PendingIntent.getBroadcast(context, requestCode, intent, flags)//PendingIntent pending = PendingIntent.getService(context, requestCode, intent, flags)//PendingIntent pending = PendingIntent.writePendingIntentOrNullToParcel(sender, out)//PendingIntent pending = PendingIntent.readPendingIntentOrNullFromParcel(in)//在指定的延时后,发送,但是不唤醒设备int type1 = AlarmManager.ELAPSED_REALTIME;//在指定的延时后 发送 并唤醒设备(常用) int type2 =AlarmManager.ELAPSED_REALTIME_WAKEUP; //在指定的时刻 发送 并唤醒设备 int type3 =AlarmManager.RTC; //在指定的时刻 发送 唤醒设备 int type4 =AlarmManager.RTC_WAKEUP;//alarmManager.set(type, triggerAtMillis, operation) 发送1次//alarmManager.setRepeating(type, triggerAtMillis, intervalMillis, operation); 重复发送}/** * 上面的alarm是可以保持 程序处于唤醒状态的。 * 下面的并没有, 所以当手机拔出 USB 和 屏幕处于待机状态一会后,可能是会出现问题的,比如10分钟联网发送一次数据 * 当然这个也是可以解决的,下篇文章说明 * *//** * timer - 定时器 */{Timer time = new Timer();TimerTask timeTask = new TimerTask(){@Overridepublic void run() { //执行你自己的操作}};int wait_time = 1000; //等待1秒后开始int repeate_time= 2000; //重复频率为 2秒time.schedule(timeTask, wait_time, repeate_time);//time.scheduleAtFixedRate(task, when, period)}/** * 线程定时器 */{Thread th = new Thread(){@Overridepublic void run() {try { while(true){ //执行你的操作 //更新UI han.post(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stub}}); thread.sleep(3000); }} catch (Exception e) {}}};Thread th1 = new Thread(){@Overridepublic void run() {try { while(true){ //执行你的操作 //更新UI han.sendMessage(new Message()); thread.sleep(3000); }} catch (Exception e) {}}};Thread th2 = new Thread(){@Overridepublic void run() {try { while(true){ han.postDelayed(new Runnable() {@Overridepublic void run() {//执行你的操作}}, 3000); }} catch (Exception e) {}} }; }