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
        }
    }
}
相关推荐
c***212912 小时前
Springboot3学习(5、Druid使用及配置)
android·学习
修炼者12 小时前
【Android 进阶】别再强转 Context 了!手把手教你优雅解耦 View 与 Activity
android·android studio
x***010612 小时前
SpringSecurity+jwt实现权限认证功能
android·前端·后端
程序员江同学13 小时前
线下活动|2025 Kotlin 中文开发者大会北京分会场
android·kotlin
李坤林14 小时前
Android Vulkan 开启VK_GOOGLE_DISPLAY_TIMING 后,一个vsync 会释放两个imageBuffer现象分析
android·vulkan
Jerry14 小时前
Compose 状态思维
android
k***459914 小时前
MySQL----case的用法
android·数据库·mysql
r***869816 小时前
Plugin ‘mysql_native_password‘ is not loaded`
android·数据库·mysql
v***598316 小时前
MySQL-mysql zip安装包配置教程
android·mysql·adb
不用89k16 小时前
Android无法区分USB摄像头是哪一个
android