一、Android 四大组件
-
Activity:用户界面组件,负责与用户交互。
-
Service:后台服务,无界面。
-
Content Provider:数据共享组件。
-
BroadcastReceiver:广播接收器,用于系统或应用间消息通信。
二、Activity 详解
1. 定义与作用
-
承载用户界面,一个应用可包含多个 Activity。
-
特殊应用(如后台服务)可以没有界面。
2. 基本用法
-
注册 :必须在
AndroidManifest.xml
中注册,位于<application>
标签内。 -
启动 Activity :使用
<intent-filter>
设置为主入口:xml <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
3. 提示机制:Toast
-
用于短暂提示用户,不占用界面空间。
-
示例:
java Toast.makeText(MainActivity.this, "提示内容", Toast.LENGTH_SHORT).show();
三、Activity 中的菜单
-
Options Menu:选项菜单,位于 ActionBar。
-
Context Menu:上下文菜单,长按某控件触发。
-
SubMenu:子菜单,分组显示功能。
-
PopupMenu:弹出式菜单,改进上下文菜单显示。
-
Shortcuts:桌面图标长按菜单。
创建方式:
-
XML 资源文件
-
Java 代码动态创建
四、Intent 通信机制
1. 定义与作用
-
Intent 是组件间交互的"意图",可传递数据、执行动作。
-
用途包括启动 Activity/Service、发送广播、拨打电话等。
2. Intent 的三大作用
-
指定请求来源、目标与路径
-
携带数据内容
-
接收方返回处理结果
3. Intent 属性
属性 | 方法 | 说明 |
---|---|---|
Component | setComponent() | 指定来源与目标组件 |
Action | setAction() | 指定动作行为 |
Data | setData() | 指定数据路径(如 tel:, http:) |
Category | addCategory() | 附加类别信息 |
Type | setType() | 数据类型 |
Extras | putExtras() | 附加数据包 |
Flags | setFlags() | 活动标志 |
4. 启动 Activity 的方式
-
构造函数指定:
java Intent intent = new Intent(this, NextActivity.class);
-
setClass 方法:
java intent.setClass(this, NextActivity.class);
-
setComponent 方法:
java ComponentName component = new ComponentName(this, NextActivity.class); intent.setComponent(component);
五、Activity 生命周期
1. 状态管理背景
-
适应场景:来电、切换应用、屏幕旋转等。
-
使用**任务栈(LIFO)**管理 Activity。
2. Activity 的四种状态
状态 | 说明 | 相关回调 |
---|---|---|
运行状态 | 位于栈顶,用户可见可交互 | onResume() |
暂停状态 | 不在栈顶但仍可见 | onPause() |
停止状态 | 完全不可见 | onStop() |
销毁状态 | 被移除栈 | onDestroy() |
3. 生命周期方法
-
onCreate()
:创建时调用 -
onStart()
:可见但未交互 -
onResume()
:可交互 -
onPause()
:失去焦点 -
onStop()
:完全不可见 -
onDestroy()
:销毁