多大な処理を必要とし同一のスレッドでは動作させたくないものは、処理終了後に動作するイベントリスナを作成する。
public class TestThread extends Thread{
public TestThread(){} //コンストラクタ
public void run(){ //メイン
/*
* このへんに処理内容を書く
*///この辺で処理終了
}
}
例えば上記のようなクラスに作る場合
public class TestThread extends Thread{
public TestThread(){} //コンストラクタ
public void run(){ //メイン
int code = 0;
/*
* このへんに処理内容を書く
*///この辺で処理終了
if(eventListener != null){eventListener.onFinish(code);} // イベントリスナを起動
}private EventListener eventListener = null;
public static abstract class EventListener{
public abstract void onFinish(int code);
}
public void setEventListener(EventListener eventListener){this.eventListener = eventListener;}}
public class TestThreadTester{
public static void main(String[] args){
TestThread testThread = new TestThread();
testThread.setEventListener(new EventListener(){
public void onFinish(int code){
System.out.println(“Finish.”);
}
});
testThread.start();
}
}
この赤文字のところを付け足せば自分でイベントリスナを作ることができる。