Android延迟执行的三种方式

  • 线程
new Thread(new Runnable() {
      public void run() {
        //sleep设置的是时长
        Thread.sleep(1000);
        handler.sendMessage();
    }
}).start
  • 延时器
TimerTask task = new TimerTask() {
                            @Override
                            public void run() {
                                MotionEvent event = MotionEvent.obtain(195534905, 195534905, MotionEvent.ACTION_DOWN, 549, 867, 0);
                                webView.onTouchEvent(event);
                            }
                        };
                        Timer timer = new Timer();
                        timer.schedule(task, 3000);
  • Android消息处理, 推荐使用这种方式
new Handler().postDelayed(new Runnable()) {
    public void run() {
        //要执行的任务
    }
}, delay);
在使用过程中出现java.lang.RuntimeException: Can't create handler inside thread Thread that has not called Looper.prepare()错误。
解决办法:在方法中增加

Looper.prepare();
​​​​​​​方法代码
Looper.loop();//增加部分
发布了230 篇原创文章 · 获赞 24 · 访问量 109万+

猜你喜欢

转载自blog.csdn.net/linzhiji/article/details/103043504