Handler系列-prepareMainLooper在哪里调用的

ActivityThread的main方法里调用prepareMainLooper

java 复制代码
public final class ActivityThread {
    public static void main(String[] args) {
        Looper.prepareMainLooper(); //创建sMainLooper

        Looper.loop();
    }
}

prepareMainLooper创建了sMainLooper

java 复制代码
public final class Looper {
    private static Looper sMainLooper;  // guarded by Looper.class

    public static void prepareMainLooper() {
        prepare(false); //创建Looper
        synchronized (Looper.class) {
            if (sMainLooper != null) {
                throw new IllegalStateException("The main Looper has already been prepared.");
            }
            sMainLooper = myLooper(); //赋值给sMainLooper
        }
    }
}
相关推荐
星辰徐哥1 小时前
Rust异步测试与调试的实践指南
android·java·rust
星河耀银海1 小时前
C++ 运算符重载:自定义类型的运算扩展
android·java·c++
阿巴斯甜2 小时前
Activity 之间大量数据传递有哪些方案?
android
阿巴斯甜2 小时前
必看1
android
帅次3 小时前
副作用 API:LaunchedEffect、DisposableEffect、SideEffect
android·compose·disposable·sideeffect·launched·ondispose
流年如夢4 小时前
单链表的应用 --> 简单通讯录的实现
android·数据结构·链表
用户860225046747210 小时前
Jetpack ViewModel 入门与实践
android
随遇丿而安10 小时前
第3周:按钮这件小事,真正麻烦的是“点完以后”
android
峥嵘life11 小时前
五一南昌第三天游玩记录:梅景寻芳,母校忆旧,摩天轮揽夜
android
qq_4523962312 小时前
第三篇:《JMeter断言:验证接口响应正确性》
android·jmeter