扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

Looper.prepare()鍜孡ooper.loop()鎬庝箞浣跨敤

扬州沐宇科技
2024-01-19 10:17:23

Looper.prepare() 鏂规硶鐢ㄤ簬鍒濆鍖栧綋鍓嶇嚎绋嬬殑 Looper 瀵硅薄锛岃鏂规硶搴旇鍦ㄥ綋鍓嶇嚎绋嬬殑 Handler 鎴栬€?MessageQueue 浣跨敤涔嬪墠璋冪敤銆?/p>

Looper.loop() 鏂规硶鏄?Looper 绫荤殑鏍稿績鏂规硶锛屽畠浼氬惎鍔ㄤ竴涓棤闄愬惊鐜紝鍦ㄥ惊鐜腑涓嶆柇鍦颁粠褰撳墠绾跨▼鐨?MessageQueue 涓彇鍑烘秷鎭繘琛屽鐞嗐€傝鏂规硶浼氫竴鐩撮樆濉炲綋鍓嶇嚎绋嬶紝鐩村埌璋冪敤 Looper.quit() 鏂规硶鍋滄寰幆銆?/p>

涓嬮潰鏄竴涓畝鍗曠殑绀轰緥锛屾紨绀轰簡濡備綍浣跨敤 Looper.prepare() 鍜?Looper.loop() 鏂规硶锛?/p>

public class MyThread extends Thread {
    public Handler mHandler;

    @Override
    public void run() {
        // 鍒濆鍖?Looper
        Looper.prepare();

        // 鍒涘缓 Handler
        mHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                // 澶勭悊娑堟伅
                // ...
            }
        };

        // 鍚姩寰幆
        Looper.loop();
    }
}

鍦ㄤ笂杩扮ず渚嬩腑锛屾垜浠垱寤轰簡涓€涓嚎绋嬬被 MyThread锛屽湪 run() 鏂规硶涓皟鐢ㄤ簡 Looper.prepare() 鍒濆鍖?Looper 瀵硅薄锛屽苟鍒涘缓浜嗕竴涓?Handler 瀵硅薄銆傜劧鍚庤皟鐢?Looper.loop() 鏂规硶鍚姩寰幆銆?/p>

鍦ㄥ惊鐜腑锛屽彲浠ラ€氳繃璋冪敤 mHandler.sendMessage() 鍙戦€佹秷鎭紝鐒跺悗鍦?handleMessage() 鏂规硶涓鐞嗘秷鎭€?/p>

闇€瑕佹敞鎰忕殑鏄紝Looper.loop() 鏂规硶浼氫竴鐩撮樆濉炲綋鍓嶇嚎绋嬶紝鍥犳瑕佺‘淇濆湪鍚堥€傜殑鏃跺€欒皟鐢?Looper.quit() 鏂规硶鏉ュ仠姝㈠惊鐜紝鍚﹀垯浼氶€犳垚绾跨▼鏃犳硶閫€鍑虹殑闂銆?/p>

扫码添加客服微信