返回

Android 26 中 Activity 启动流程的全面解读

Android

Android 中的 Activity 启动流程

1. 用户点击应用程序图标

用户点击应用程序图标后,Android 系统会启动 ActivityManagerService,这是一个系统服务,负责管理应用程序的启动和生命周期。ActivityManagerService 会检查应用程序的 AndroidManifest.xml 文件,以确定要启动哪个 Activity。

2. ActivityManagerService 启动 Activity

ActivityManagerService 找到要启动的 Activity 后,会创建一个新的 Activity 对象并调用它的 onCreate() 方法。onCreate() 方法是 Activity 生命周期的第一个方法,用于初始化 Activity。

3. Activity 调用 setContentView() 方法

在 onCreate() 方法中,Activity 会调用 setContentView() 方法来设置其布局。布局通常是一个 XML 文件,它定义了 Activity 的用户界面。

4. Activity 调用 onStart() 和 onResume() 方法

在 setContentView() 方法之后,Activity 会调用 onStart() 和 onResume() 方法。onStart() 方法用于启动 Activity,而 onResume() 方法用于恢复 Activity。

5. Activity 处于运行状态

Activity 现在处于运行状态,用户可以与之交互。Activity 可以响应用户的输入,并可以更新其用户界面。

6. 用户离开 Activity

当用户离开 Activity 时,Activity 会调用 onPause() 和 onStop() 方法。onPause() 方法用于暂停 Activity,而 onStop() 方法用于停止 Activity。

7. ActivityManagerService 销毁 Activity

当 Activity 不再需要时,ActivityManagerService 会销毁它。销毁 Activity 的过程包括调用 Activity 的 onDestroy() 方法,释放 Activity 占用的资源,并将 Activity 从堆栈中移除。

8. Activity 启动流程结束

Activity 启动流程现在结束。用户可以再次点击应用程序图标来启动 Activity,或者可以使用其他方式来启动 Activity,例如通过 Intent。

关键概念

Activity

Activity 是 Android 中的一个组件,它代表一个屏幕。Activity 可以响应用户的输入,并可以更新其用户界面。

生命周期

Activity 有一个生命周期,它定义了 Activity 从创建到销毁的各个阶段。Activity 的生命周期包括 onCreate()、onStart()、onResume()、onPause()、onStop() 和 onDestroy() 等方法。

Intent

Intent 是 Android 中的一种消息,它用于在组件之间传递数据。Intent 包含要启动的 Activity 的名称,以及要传递给 Activity 的数据。

Context

Context 是 Android 中的一个对象,它代表一个应用程序的环境。Context 可以用于访问应用程序的资源,例如字符串、布局和图像。

Stack

Stack 是一个数据结构,它可以存储 Activity。当用户启动一个新的 Activity 时,新的 Activity 会被添加到堆栈的顶部。当用户离开 Activity 时,Activity 会从堆栈中移除。

Back Stack

Back Stack 是一个堆栈,它存储用户访问过的 Activity。当用户按后退键时,Back Stack 中的 Activity 会逐个弹出并显示在屏幕上。

Manifest

Manifest 是一个 XML 文件,它了应用程序的组件。Manifest 包含要启动的 Activity 的名称,以及其他信息,例如应用程序的名称、版本号和权限。

AndroidManifest.xml

AndroidManifest.xml 是 Android 应用程序的 Manifest 文件。它位于应用程序的根目录中。

启动标志 (FLAG_ACTIVITY_)

启动标志 (FLAG_ACTIVITY_) 是一个常量,它可以用于控制 Activity 的启动方式。启动标志包括 FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_SINGLE_TOP 和 FLAG_ACTIVITY_NO_HISTORY 等。

总结

本文详细介绍了 Android 26 中 Activity 启动流程的各个步骤,涵盖了从用户点击应用程序图标到 Activity 完全启动并显示在屏幕上的整个过程。我们分析了 Activity 的生命周期、Intent、Context、Stack、Back Stack、Manifest 和 AndroidManifest.xml 等关键概念,并探讨了各种启动标志 (FLAG_ACTIVITY_) 的作用。无论您是 Android 开发新手还是经验丰富的专业人士,本文都将为您提供宝贵的知识和见解,帮助您更好地理解和掌握 Activity 启动流程。