android中延迟执行某个任务

本文介绍了在Android App开发中实现延时功能的方法,包括使用Timer、线程睡眠、Android消息处理和AlarmManager。详细解释了每种方法的工作原理及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android App开发在某些情况下需要有延时功能,比如说App首页显示定格3秒,然后自动跳到登录页的情况,这就好比是一个预加载,但是这个预加载可能瞬间就完成了,撑不到3秒钟,这是就要求你做延时处理。


下面有四种方法:

一、延时器

<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,能实现时刻广播指定意图,一般的简单人物不这么做。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值