在Android开发中,Activity
是应用的核心组件之一,它提供了一个屏幕,用户可以在上面进行交互以完成某项任务。Activity
的源码解析涉及到多个核心类和核心方法,这些类和方法共同构成了Android应用界面的基础。下面是一些关键的类、方法以及它们的作用和原理:
核心类
-
Activity
- 作用:
Activity
是Android应用中的一个单屏幕,用于与用户进行交互。它是Context
的子类,因此可以访问应用的资源和类,以及调用应用级操作如启动活动、广播和接收意图等。 - 核心方法:
onCreate(Bundle savedInstanceState)
: 当活动第一次创建时调用,用于初始化活动。onStart()
: 当活动对用户可见时调用。onResume()
: 当活动开始与用户交互时调用。onPause()
: 当活动被其他活动部分遮挡时调用。onStop()
: 当活动完全不可见时调用。onDestroy()
: 当活动即将被销毁时调用。
- 作用:
-
Context
- 作用:
Context
是一个抽象类,允许访问特定资源和类以及调用应用级操作如启动活动、广播和接收意图等。Activity
继承自ContextThemeWrapper
,后者继承自Context
,因此Activity
也是一个Context
。 - 核心方法:
getResources()
: 获取应用的资源。getPackageManager()
: 获取包管理器,用于访问包信息、安装的应用等。startActivity(Intent intent)
: 启动一个新的活动。
- 作用:
public class Activity extends ContextThemeWrapper
implements LayoutInflater.Factory2,
Window.Callback, KeyEvent.Callback,
OnCreateContextMenuListener, ComponentCallbacks2,
Window.OnWindowDismissedCallback {....}
-
Intent
- 作用:
Intent
是不同组件之间通信的主要方式,它用于从一个组件请求另一个组件执行特定的操作。在Activity
的上下文中,Intent
常用于启动新的活动或发送广播。 - 核心方法:
setAction(String action)
: 设置意图的动作。putExtra(String name, Bundle value)
: 添加额外的数据到意图中。getExtras()
: 获取意图中所有的额外数据。
- 作用:
-
FragmentManager 和 Fragment
- 作用:
FragmentManager
用于在Activity
中管理Fragment
的生命周期和事务。Fragment
允许你将UI分解成可重用的组件,这些组件可以在不同的活动中重用。 - 核心方法(
FragmentManager
):beginTransaction()
: 开始一个事务,用于添加、移除或替换Fragment
。commit()
: 提交事务。
- 核心方法(
Fragment
):onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
: 创建并返回Fragment
的视图。onActivityCreated(Bundle savedInstanceState)
: 当Activity
的onCreate()
方法完成后调用。
- 作用:
原理
- 生命周期管理:Android通过调用
Activity
的生命周期方法来管理活动的创建、显示、隐藏、暂停、停止和销毁。这些方法的调用时机由Android系统控制,以确保活动在正确的状态下执行相应的操作。 - 组件间通信:
Intent
是一种跨组件通信的机制,它允许不同组件(如活动、服务、广播接收器等)之间进行数据传递和请求。通过Intent
,可以指定要执行的操作、传递数据以及指定接收组件的类别。 - 资源管理:
Context
提供了访问应用资源(如布局文件、字符串、图片等)的接口。Activity
作为Context
的子类,可以方便地访问这些资源,并在UI中展示它们。 - UI组件重用:
Fragment
允许开发者将UI分解成可重用的组件,这些组件可以在不同的活动中重用。通过FragmentManager
,可以灵活地管理Fragment
的生命周期和事务,实现复杂的UI布局和交互。
这些核心类和方法的组合使用,构成了Android应用界面的基础,使得开发者能够创建出丰富、交互性强的应用。