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