【发布时间】:2014-12-11 11:57:16
【问题描述】:
我创建了一个实用程序类来获取有关正在运行的线程的信息。一个名为MQTT_THREAD 的线程在按下按钮时启动。我还有另一个名为play 的按钮,按下它应该首先检查线程MQTT_THREAD 是否存在,或者换句话说,是否诞生。
在运行时,我按下启动MQTT_THREAD 的按钮,当我按下play 按钮时,它显示the thread MQTT_THREAD is not existing。我相信这主要是因为我不理解线程或逻辑中的一个小错误。下面是我的代码。
请看一看,让我知道我在想什么。
使用的 Code_utility 方法
public static Thread[] getAllRunninthreads() {
Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
Thread[] threadArray = threadSet.toArray(new Thread[threadSet.size()]);
return threadArray;
}
public static boolean isThreadExist(String threadName) {
boolean isExist = false;
for (int i = 0; i < ThreadsUtility.getAllRunninthreads().length; i++) {
if (ThreadsUtility.getAllRunninthreads()[i].getName().equals(threadName)) {
return (isExist = true);
}
}
return isExist;
}
代码_在主线程:
if (e.getSource() == Bplay) {
if (!ThreadsUtility.isThreadExist(MQTT_THREAD)) {
System.out.println(MQTT_THREAD + " is not existing.");
}else {
System.out.println(MQTT_THREAD + " exists.");
if (!ThreadsUtility.isThreadExist(FILE_THREAD)) {
System.out.println(FILE_THREAD + " is not existing.");
}else {
System.out.println(FILE_THREAD + " exists.");
}
}
【问题讨论】:
-
你能在你创建和启动线程的地方添加一点代码吗?
标签: java android multithreading java.util.concurrent