【问题标题】:Does handler.post(runnable) start a new thread?handler.post(runnable) 是否启动一个新线程?
【发布时间】:2012-02-28 02:56:44
【问题描述】:

如果处理程序是在主 UI 线程中实例化的,那么带有 Runnable 的帖子会创建一个添加到消息队列中的子线程,还是只是在 UI 线程中运行?

handler.post(new Runnable(){
    public void run() {
        // do stuff
    }
});

【问题讨论】:

    标签: java android handler runnable


    【解决方案1】:

    不,它不会创建新线程。它只是在您的处理程序附加到的线程上执行您的可运行文件,在这种情况下,这意味着您的 UI 线程

    【讨论】:

      【解决方案2】:
      handler.post(new Runnable()){
      
      public  void run(){
      //do something
      }
      });
      

      这并不能保证它会创建一个新线程。它只会调用处理程序所附加到的线程的可运行对象(此处为 UI 线程)。

      Handler 不会创建新线程,它会绑定到它创建的线程的 looper(在本例中为主线程),或者绑定到您在构造过程中给它的 looper。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-19
        • 1970-01-01
        • 2015-02-25
        • 1970-01-01
        • 1970-01-01
        • 2011-08-27
        • 1970-01-01
        • 2012-03-20
        相关资源
        最近更新 更多