java - 检查从哪个线程调用方法

标签 java android multithreading

<分区>

我有一个方法,我只想在不在主线程上时调用它(做繁重的工作),如果它是从主线程调用的,我会抛出运行时异常,类似于您尝试执行时发生的情况主线程上的网络调用,你会得到一个 NetworkOnMainThreadException

我还没有找到关于这个问题的任何信息,所以有什么办法吗?

最佳答案

您可以将当前线程与主 Looper 之一进行比较

if (Thread.currentThread() == Looper.getMainLooper().getThread())
    throw new IllegalStateException();

关于java - 检查从哪个线程调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25290733/

相关文章:

java - R.java 不再生成可绘制对象

c# - 使用WebClient下载多个文件时出现无限循环

android - 多个dex文件用Gradle定义Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat

Android 列布局

java - 当我有套接字和线程时如何彻底停止tomcat

c++ - 如何将 'this'指针传递给C++ WinAPI线程?

带有 ActionListener 的 Java 动画

java - 我如何通知用户他输入的值已被限制为 JSpinner 下限?

java - 斐波那契使用 1 个变量

java - Eclipse 应用程序在 Ubuntu 18.04 上崩溃