Android 延时执行某个任务

来源:互联网 发布:windows官网中文版 编辑:程序博客网 时间:2024/05/30 05:12

我们有时候需要我们的某个函数,或者是界面的跳转;在延时 几秒之后再执行这个函数或者是界面的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!

0 0