java - 如何确定 Java Android Looper 是否繁忙

标签 java android

我在单独的线程上对任务进行了简单的处理。

class MyHandlerThread extends Thread {
    Handler mHandler;

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

        mHandler = new Handler();

        Looper.loop();
    }
}

我如何确定循环器当前是否正忙于处理消息,或者它的消息队列是空的并且正在等待消息?我想从另一个线程来做。

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

最佳答案

可以使用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

关于java - 如何确定 Java Android Looper 是否繁忙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34241282/

相关文章:

java - 推土机 : primitive int -1 value to null object mapping

java - 防止由特定触发器触发的实例的并发执行

java - 如何清除 JSON 数组中的数据

java - MouseListener 无法识别第一次点击

java - Hazelcast 分区计数和线程并发

java - Swagger 生成的客户端代码无法调用 https 本地主机端点

android - 如何在 Xamarin Picker 中设置项目的字体大小?

android - 显示名称未更新 Email.Content_URI

Android Q - 从人像模式照片中获取深度图

java - 更新上传过程的进度对话框