android中延迟执行某个任务
2014-08-04 11:04
351 查看
android App开发在某些情况下需要有延时功能,比如说App首页显示定格3秒,然后自动跳到登录页的情况,这就好比是一个预加载,但是这个预加载可能瞬间就完成了,撑不到3秒钟,这是就要求你做延时处理。
下面有四种方法:
一、延时器
二,线程睡眠
说明用例:
假定某一时刻m1线程获得CPU,开始执行一次for循环,当它执行sleep()方法时,就会放弃CPU并开始睡眠。接着m2线程获得CPU,开始执行一次for循环,当它执行sleep()方法时,就会放弃CPU并开始睡眠。接着m3线程获得CPU,开始执行一次for循环,当它执行sleep()方法时,就会放弃CPU并开始睡眠。假定此时m1线程已经结束睡眠,就会获得CPU,继续执行下一次for循环。
当m1线程结束睡眠,首先转到就绪状态,假如此时CPU正被m2线程占用,那么m1线程不一定立即会运行,而是在可运行池中等待获得CPU。
三,android消息处理
四,利用AlarmManager,能实现时刻广播指定意图,一般的简单人物不这么做。
下面有四种方法:
一、延时器
<span style="font-size:14px;">TimerTask task = new TimerTask(){ public void run(){ //execute the task } }; Timer timer = new Timer(); timer.schedule(task, delay); </span>delay的单位是ms
二,线程睡眠
<span style="font-size:14px;"> new Thread(new Runnable(){ public void run(){ Thread.sleep(XXXX); handler.sendMessage();----告诉主线程执行任务 } }).start(); </span>
说明用例:
<span style="font-size:14px;"> public void fight(){ /* 与敌人战斗 */ for(int i=1;i<=100;i++){ System.out.println(getName()+":打败第"+i+"个敌人"); try{ sleep(500); //睡眠500毫秒 }catch(InterruptedException e){ throw new RuntimeException(e); } } } </span>Thread类的sleep(long millis)方法是静态方法,millis参数设定睡眠的时间,以毫秒为单位。
假定某一时刻m1线程获得CPU,开始执行一次for循环,当它执行sleep()方法时,就会放弃CPU并开始睡眠。接着m2线程获得CPU,开始执行一次for循环,当它执行sleep()方法时,就会放弃CPU并开始睡眠。接着m3线程获得CPU,开始执行一次for循环,当它执行sleep()方法时,就会放弃CPU并开始睡眠。假定此时m1线程已经结束睡眠,就会获得CPU,继续执行下一次for循环。
当m1线程结束睡眠,首先转到就绪状态,假如此时CPU正被m2线程占用,那么m1线程不一定立即会运行,而是在可运行池中等待获得CPU。
三,android消息处理
<span style="font-size:14px;">new Handler().postDelayed(new Runnable(){ public void run() { //execute the task } }, delay);</span>
四,利用AlarmManager,能实现时刻广播指定意图,一般的简单人物不这么做。
相关文章推荐
- android中延迟执行某个任务
- android开发中延迟执行任务方法
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务的几种处理方法
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- (转)Android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务(基础备用)
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行某个任务
- android中延迟执行任务的方式
- android中延迟执行某个任务