私はこの標準コンストラクタを使用しています:
new Thread(myRunnable);
ここで、myRunnable は Runnable インターフェイスを持つカスタム オブジェクトです。
スレッドプロセス中に、その実行可能なオブジェクトにアクセスする必要があります (プロセスのステータスと進行状況を通知するため)。どうすればよいですか?
オブジェクトがスレッドの場合、次を使用します。
(MyThread) Thread.getCurrentThread()
しかし、パラメーターとして渡された runnable では、それを取得できません。
編集
これは私のコード構造です:
public abstract class ProgressThread{
private float progress; //... progress getter, setter...
}
public class MyRunnable extends ProgressThread implements Runnable{
public void run(){
//starting processes...
Job1 j1=new Job1().do();
Job1 j2=new Job2().do();
}
private class Job1(){
for(int i=0;i<10;i++){
// do something
float progress=i/10;
// set job progress in thread
Thread.getCurrentThread().getRUNNABLE().setProgress(progress);
}
}
}
これが getRUNNABLE() メソッド (または回避策!) が必要な理由です。ありがとう。