Android处理延时加载的方法

来源:互联网 发布:java在线答题系统源码 编辑:程序博客网 时间:2024/06/06 14:01

在项目开发中,经常需要通过延时加载来实现满足我们的项目要求。那到底怎样来实现延时,下面结合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>
0 0
原创粉丝点击