1

ハンドラー スレッド インスタンスを使用してスレッドを終了しているときに、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.

     }

    }
}
4

0 に答える 0