ハンドラー スレッド インスタンスを使用してスレッドを終了しているときに、null ポインター例外が発生します。作成後にインスタンス値が null になります。変数を静的にすると、この問題に直面しませんでした。ハンドラー スレッド インスタンスが作成後に null になる理由について、誰か説明してもらえますか。以下のコードで、私の問題について簡単に説明します。
private class MyHandler extends Handler{
private HandlerThread hThread;
private MyHandler(Looper looper){
super(looper);
}
public MyHandler(){
//Created my handler thread instance here
hThread = new HandlerThread(... , Process.THREAD_PRIORITY_BACKGROUND);
hThrad.start();
new MyHandler(hThread.getLooper);
}
これが私のハンドルメッセージメソッドです:
public void HandlerMessage(Message msg){
super(msg);
try{
/*Here I am executing some utility methods*/
}catch(Exception exce){
}finally{
/*While reading the instance of Handler thread it says null*/
hThread.quit();//Throws null pointer exception.
}
}
}