一天一個知識點

可以在子線程直接 new 一個 Handler 嗎?怎麼做?

不可以,因爲在主線程中,Activity 內部包含一個 Looper 對象,它會自動管理 Looper,處理子線程中發送過來的消息。而對於子線程而言,沒有任何對象幫助我們維護 Looper 對象,所以需要我們自己手動維護。所以要在子線程開啓 Handler 要先創建 Looper,並開啓 Looper 循環

   new Thread(new Runnable(){
            @Override
             public void run() {
                 looper.prepare();
                 new Handler() {
                         @Override 
                         piblic void handlerMessage(Message msg) {
                             super,handleMessage(msg);
                         }
                 }
                 looper.loop();
            }
       }).start();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章