Android - 等待创建处理程序对象的正确方法

Pet*_*ter 7 android

伙计们,

这是我的后台线程的简化代码:

    public class MyThread extends Thread {
      private Handler _handler;

      public void run() {
         Looper.prepare();
         this._handler = new Handler();
         Looper.loop();
      }

      public void DoSomething() {
         if (!this.isAlive()) {
            this.start();
         }

         this._handler.post(blah);
      }
    }
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是后台线程在调用post()时可能还没有创建处理程序对象.本质上,我需要一个等待循环来处理初始化处理程序对象.在Android下生成这个的可接受方法是什么?

预先感谢您的帮助.

问候,彼得

spa*_*nia 3

您可以在初始化 Handler 后设置一个标志,并在调用之前等待该标志post

在并发系统中等待标志的一种简单方法是使用CountDownLatch. 它将从 1 开始,并在 Handler 初始化后递减。在此处查看详细信息: http://download.oracle.com/javase/1,5,0/docs/api/java/util/concurrent/CountDownLatch.html