android - 主线程中默认的Looper和handler什么时候创建

标签 android android-activity

对于主 Activity ,主线程中的循环程序和处理程序处理 UI 中的用户输入。既然主 Activity 被授予一个线程,那么循环器和处理程序何时创建?

有没有办法查看底层从 UI 接收消息并将其传递到主线程时是如何实现的?

最佳答案

我将尽力解释 Android 启动应用程序时所经历的基本步骤。这是一个简化的答案。要了解更多详细信息,您可能需要自己阅读 Android 源代码。

让我们从用户单击主屏幕上应用程序的启动器图标开始。我们假设您的应用程序当前未运行:

  • Android 会创建一个操作系统进程来托管您的应用程序(因为您的应用程序还没有正在运行的操作系统进程)。
  • Android 创建主 (UI) 线程并准备 LooperHandler对于该线程并启动 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/

相关文章:

android - 苹果。找不到模块 'appium-base-driver'

android - 禁用在 android 中打开抽屉导航的滑动手势

java - 如何在 Activity 之间传递双数组(boolean[][])?

android - 如何在 Android 的共享首选项中添加 bool 数组

Android 资源 ID

android - ActionBar 选项卡删除填充和分隔符

android - 为什么编辑文本预览显示不正确......?

返回应用程序时 Android 后台 Activity 消失

android - 拥有多个 Launcher Activity

android - 如何将密码 Activity 设置为仅使用数字?