実行中のスレッドの状態を取得するためのこの簡単な方法を思いつきましたが、いくつかの問題が発生しました。誰かが私がそれらを修正するのを手伝ってくれるか、これを行うための新しい方法を私に与えることができれば、それは素晴らしいことです。これが私のThreadクラスコードです:
public class DLThread implements Runnable{
Thread dl;
String dlurl;
boolean running;
public DLThread(String cmd) {
dl = new Thread(this, "DL Thread");
dl.start();
dlurl = cmd.substring(3);
}
@Override
public void run() {
running = true;
System.out.println("Thread is Running");
try{
Methods.downloadExecute(dlurl);
running = false;
System.out.println("Thread done");
}
catch(Exception e){
e.printStackTrace();
running = false;
System.out.println("Thread done");
}
}
public boolean getState() {
return running;
}
}
ブール値の「running」を使用して、スレッドが実行されているかどうか、または実行されているかどうかを判別しています。これが私がそれを呼ぼうとしているところです:
if ( cmd.startsWith( "dl=" )) {
boolean running = DLThread.getState();
if(running){
new DLThread(cmd);
}
}
このエラーが発生します:non-static method getState() cannot be referenced from a static context