对于主 Activity ,主线程中的循环程序和处理程序处理 UI 中的用户输入。既然主 Activity 被授予一个线程,那么循环器和处理程序何时创建?
有没有办法查看底层从 UI 接收消息并将其传递到主线程时是如何实现的?
最佳答案
我将尽力解释 Android 启动应用程序时所经历的基本步骤。这是一个简化的答案。要了解更多详细信息,您可能需要自己阅读 Android 源代码。
让我们从用户单击主屏幕上应用程序的启动器图标开始。我们假设您的应用程序当前未运行:
- Android 会创建一个操作系统进程来托管您的应用程序(因为您的应用程序还没有正在运行的操作系统进程)。
- Android 创建主 (UI) 线程并准备
Looper
和Handler
对于该线程并启动Looper
. - Android 实例化您的单例
Application
对象和调用onCreate()
在那个例子中 - Android 实例化根
Activity
为您的应用程序( list 中包含 ACTION=MAIN 和 CATEGORY=LAUNCHER 的应用程序)并调用onCreate()
在那个例子中 - Android 现在会根据 Android 组件的标准生命周期对您的 Activity 进行各种其他生命周期调用。
- 一旦您的
Activity
在屏幕上和前台中,UI 事件和其他系统事件将被分派(dispatch)到应用程序的组件。
一般来说,除非您显式创建其他线程,否则所有代码都将在主 (UI) 线程上运行。
关于android - 主线程中默认的Looper和handler什么时候创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30772414/