如何确定Java Android Looper是否正忙

时间:2015-12-12 15:02:52

标签: java android

我在一个单独的线程上有一个简单的任务处理。

class MyHandlerThread extends Thread {
    Handler mHandler;

    public void run() {
        Looper.prepare();

        mHandler = new Handler();

        Looper.loop();
    }
}

如何确定looper当前是忙于处理消息还是消息队列为空并且正在等待消息?我想从另一个线程那样做。

基本上,我想知道处理程序何时完成了我刚刚提交的任务。

1 个答案:

答案 0 :(得分:1)

您可以使用synchronized方法确定线程是否忙碌

示例:

public class MsLunch {
  private long c1 = 0;
  private long c2 = 0;
  private Object lock1 = new Object();
  private Object lock2 = new Object();

  public void inc1() {
      synchronized(lock1) {
          c1++;
      }
  }

  public void inc2() {
      synchronized(lock2) {
          c2++;
      }
  }
}

更多信息:http://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html