Android 延时执行某个任务

Posted wlytctw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 延时执行某个任务相关的知识,希望对你有一定的参考价值。

我们有时候需要我们的某个函数,或者是界面的跳转;在延时 几秒之后再执行这个函数或者是界面的startActivity();这时候我们就需要做下延时处理以让用户看到某个操作效果,或者是隐含的操作!
实现的方式有以下几种:

第一种:

  /**
     * Thread.sleep(long )
     */
    public void threadDelay() 
        Thread thread = new Thread(runnable);
        thread.start();
    

第二种方式:

handler.postDelayed(runnable, 2500);

第三种方式:

  TimerTask task = new TimerTask() 
            @Override
            public void run() 
                //TODO: execute Task
                handler.obtainMessage(UPDATE_DATA, "更新").sendToTarget();
            
        ;

        Timer timer = new Timer();
        timer.schedule(task, 2500);

Runnable 接口:

Runnable runnable = new Runnable() 

        @Override
        public void run() 
            //TODO: execute Task(借助Handler 发送一条消息到MainThread)

            try 
                Thread.sleep(2500);
             catch (InterruptedException e) 
                e.printStackTrace();
            
            // 发送一条消息到 MainThread 更新UI
            handler.obtainMessage(UPDATE_DATA, "更新").sendToTarget();

        
    ;

Handler:

private static class MyHandler extends Handler 
    private final WeakReference<MainActivity> mActivity;

    public MyHandler(MainActivity activity) 
            mActivity = new WeakReference<MainActivity>(activity);
        

        @Override
        public void handleMessage(Message msg) 
            super.handleMessage(msg);
            MainActivity activity = mActivity.get();
            if (activity != null) 

                if (msg.what == UPDATE_DATA) 
                    tv_info.setText((String) msg.obj);
                
            
        
    ;

以上方式即可做到在 2500ms之后执行某个Task!

以上是关于Android 延时执行某个任务的主要内容,如果未能解决你的问题,请参考以下文章

linux学习日记之系统定时延时任务

android AsyncTask执行为啥这么慢

Android:常用设定延时的方法

Android 延时执行的几种方法

Android延时执行的几种方法

android Activity关闭后 onDestory不执行