首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android 程序是否都有一個主線程?Looper 的作用

     編輯:程式設計疑難解答

結論

是的,每個 Android 應用啟動時都會創建一個主線程(UI 線程)。

主線程特點

  • 名為 main,負責處理 UI 繪製、事件分發、四大組件生命週期回調。
  • 不能在主線程執行耗時操作(網絡請求、複雜計算、I/O),否則會導致 ANR。

Looper 與 MessageQueue

  • Looper:線程內部的消息循環器,不斷從 MessageQueue** 取出 Message 分發給對應的 Handler 處理。
  • 主線程默認已調用 Looper.prepare() 和 Looper.loop(),開發者無需手動創建。
  • 子線程若需使用 Handler,必須手動調用 Looper.prepare() 和 Looper.loop()。

常見用法

// 子線程中使用 Handler
new Thread(() -> {
    Looper.prepare();
    Handler handler = new Handler(Looper.myLooper()) {
        @Override public void handleMessage(Message msg) { /* 處理 */ }
    };
    Looper.loop();
}).start();

總結

主線程是 Android 應用的核心,Looper 實現了線程的消息循環機制,是 Handler 機制的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved