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
        }
    }
}
相关推荐
JJay.2 小时前
Android BLE 稳定连接的关键,不是扫描,而是 GATT 操作队列
android·服务器·前端
忒可君2 小时前
C# winform 自制分页功能
android·开发语言·c#
summerkissyou19872 小时前
Android-线程安全-volatile
android·线程
我命由我123455 小时前
Android 开发中,关于 Gradle 的 distributionUrl 的一些问题
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
su_ym81105 小时前
Android 系统源码阅读与编译构建实战指南
android·framework
方白羽5 小时前
《被封印的六秒:大厂外包破解 Android 启动流之谜》
android·app·android studio
IT乐手7 小时前
java 对比分析对象是否有变化
android·java
做时间的朋友。7 小时前
MySQL 8.0 窗口函数
android·数据库·mysql
举儿7 小时前
通过TRAE工具实现贪吃蛇游戏的全过程
android
守月满空山雪照窗8 小时前
深入理解 MTK FPSGO:Android 游戏帧率治理框架的架构与实现
android·游戏·架构