何时创建主线程中的默认Looper和处理程序

时间:2015-06-11 05:36:58

标签: android android-activity

对于主活动,来自主线程的looper和handler处理UI中的用户输入。由于主活动被授予一个线程,looper和handler何时被创建?

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

1 个答案:

答案 0 :(得分:2)

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

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

  • Android会创建一个操作系统进程来托管您的应用程序(因为您的应用程序还没有正在运行的操作系统进程)。
  • Android创建主(UI)主题并为该主题准备LooperHandler并启动Looper
  • Android实例化您的单身Application对象并在该实例上调用onCreate()
  • Android为您的应用程序实例化根Activity(清单中的ACTION = MAIN和CATEGORY = LAUNCHER)并在该实例上调用onCreate()
  • Android现在根据Android组件的标准生命周期调用您的活动上的各种其他生命周期调用。
  • 一旦您的Activity出现在屏幕上并位于前台,就会将UI事件和其他系统事件发送到您应用程序的组件。

通常,除非您显式创建其他线程,否则所有代码都将在主(UI)线程上运行。