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
        }
    }
}
相关推荐
哑巴湖小水怪3 小时前
Android的架构是四层还是五层
android·架构
2501_916008895 小时前
深入解析iOS应用启动性能优化策略与实践
android·ios·性能优化·小程序·uni-app·cocoa·iphone
美狐美颜SDK开放平台6 小时前
短视频/直播双场景美颜SDK开发方案:接入、功能、架构详解
android·ios·美颜sdk·第三方美颜sdk·视频美颜sdk
untE EADO6 小时前
在 MySQL 中使用 `REPLACE` 函数
android·数据库·mysql
iblade7 小时前
Android CLI And Skills 3x faster
android
阿巴斯甜8 小时前
SharedUnPeekLiveData和UnPeekBus的区别:
android
阿巴斯甜8 小时前
UnPeek-LiveData的使用:
android
我就是马云飞8 小时前
我废了!大厂10年的我面了20家公司,面试官让我回去等通知!
android·前端·程序员
limuyang210 小时前
在 Android 上用上原生的 xxHash,性能直接拉满
android
Fate_I_C10 小时前
ViewModel 的生命周期与数据保持
android·kotlin