java - 如何检查Android线程是否正在运行

标签 java android multithreading

有没有办法检查 Thread 对象是否已经开始调用它?

我正在尝试这样的事情:

if(rt.isAlive() == true)
{
    Log.v(TAG, "START RECORD");
    rt.recording = true;
}
else
{
    Log.v(TAG, "START THREAD/RECORD");

    rt.start();
}

如果线程尚未运行,它将在何处启动线程。

最佳答案

假设 rt 是一个 Thread,只需检查 rt.isAlive()

或者,只需使用一个 boolean 标志,并在您开始您的线程之前将其设置为 true。

我实际上更喜欢 boolean 方法,因此主线程无法启动另一个线程两次 - 在您的线程启动并运行之前可能会有短暂的延迟,如果您的主线程尝试启动该线程快速连续两次,它可能会在 rt.isAlive() 上得到一个“假”否定。

关于java - 如何检查Android线程是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4348438/

相关文章:

java - 与 java 应用程序集成时 Bing 翻译器异常

java - 跨 Activity 的sharedPreferences上下文空指针

java - 哪个更有效,为什么?

java - Android 上的应用程序重新启动后,线程才会启动

java - 是否有像 vb.net 的 Do Until Loop 这样的 Java 内置结构?

尽管没有出现错误,Java SQL 更新语句并未在表中更新

java - 计算目录中 MP4 文件的总持续时间时出现 SLF4J 问题

Android 4.x RemoteControlClient.setTransportControlFlags() 不工作?

java - 如何使 String Base64 Url 安全 Java/Android?

c++ - C++ 11中的thread_local不一致