Android处理延时加载的方法

本文深入探讨了在项目开发中如何通过Java和Android的内置方法实现延时加载,包括使用线程的Sleep方法、Timer和TimerTask延时器、以及Android自带的Handler消息处理机制,并详细介绍了如何利用SchduleExecutorService接口进行延时迭代。

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

在项目开发中,经常需要通过延时加载来实现满足我们的项目要求。那到底怎样来实现延时,下面结合java与android的相关方法来实现延时问题。

一. 利用线程的Sleep方法

new Thread(new Runnable(){

      @Override
      public void run() {
        // TODO Auto-generated method stub
        try {
          Thread.sleep(1000);
          myHandler.sendEmptyMessage(what);//处理主线程方法
        } catch (InterruptedException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      }
    });

二. 利用Timer和TimerTask延时器
    // 1.实例化Timer
    Timer timer = new Timer();
    // 2.实例化TimerTask
    TimerTask timerTask = new TimerTask() {

      @Override
      public void run() {
        // TODO Auto-generated method stub

      }
    };
    // 3.启动定时器
    /**
     * task: the task to schedule. 
     * delay: amount of time in milliseconds before first execution. 
     * period: amount of time in milliseconds between subsequent executions
     */
    timer.schedule(timerTask, delay, period);

    // 4.关闭定时器
    if (timerTask != null) {
      timerTask.cancel();
      timerTask = null;
    }

    // 5.重新开启定时器,需要重新实例化

    timerTask = new TimerTask() {

      @Override
      public void run() {
        // TODO Auto-generated method stub

      }
    };
    timer.schedule(timerTask, delay, period);</span>
3. 利用android自带的Handler消息处理
    /**
     * delayMillis:The delay (in milliseconds) until the Runnable will be executed.
     */
    new Handler().postDelayed(new Runnable(){

      @Override
      public void run() {
        // TODO Auto-generated method stub
        
      }
      
    }, delayMillis);</span>
4. SchduleExecutorService接口处理延时 迭代
    /**
     * ScheduledExecutorService提供了按时间安排执行任务的功能,它提供的方法主要有:
     * schedule(task,initDelay):安排所提交的Callable或Runnable任务在initDelay指定的时间后执行。
     * scheduleAtFixedRate():安排所提交的Runnable任务按指定的间隔重复执行
     * scheduleWithFixedDelay():安排所提交的Runnable任务在每次执行完后,等待delay所指定的时间后重复执行。
     * 
     * initialDelay: the time to delay first execution
     * period: the period between successive executions
     * unit: the time unit of the initialDelay and period parameters
     */
    //1.实例化
    ScheduledExecutorService schedule = Executors.newScheduledThreadPool(2);
    //2.开启定时 循环迭代处理
    schedule.scheduleAtFixedRate(new Runnable(){

      @Override
      public void run() {
        // TODO Auto-generated method stub
        
      }
      
    }, initialDelay, period, unit);
    //3.关闭
    if(schedule != null){
      schedule.shutdown();
      schedule = null;
    }</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值