throw new RuntimeException(“Main thread loop unexpectedly exited”);
}
为什么每一个应用会有自己的一个main函数呢?
当我们在launcher界面启动一个应用的时候,这时候,系统就会用zygote给我们分配一个虚拟机,然后,这个应用就会运行在这个虚拟机上面。
应用运行到虚拟机之后,首先它要执行的就是启动ActivityThread,在ActivityThread中,它又会启动它的main()函数。
在main()函数中,它最重要的两行代码:
public static void main(String[] args) {
…
Looper.prepareMainLooper();
…
Looper.loop();
}
所以在程序运行的时候,主线程所有的代码都运行在这个Looper里面。
也就是说应用所有生命周期的函数(包括Activity、Service所有生命周期)都运行在这个Looper里面,而且,它们都是以消息的方式存在的。
假如说一个Activity启动,要走onResume()函数的时候,它就会在Activity的H里面执行RESUME_ACTIVITY。
case RESUME_ACTIVITY: re 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】 turn “RESUME_ACTIVITY”;
它发送了一个Resume的消息,再接着看下这个Resume这个消息做了什么事情,代码在ActivityThread.java的han