Android的Activity与intent知识点

一、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 中的菜单

  1. Options Menu:选项菜单,位于 ActionBar。

  2. Context Menu:上下文菜单,长按某控件触发。

  3. SubMenu:子菜单,分组显示功能。

  4. PopupMenu:弹出式菜单,改进上下文菜单显示。

  5. 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():销毁

相关推荐
圆粥綠2 天前
【保姆级】国内Windows用户Android Studio下载+安装+配置完整教程(2026最新版,避坑指南)
android·windows·android studio
大貔貅喝啤酒4 天前
基于Windows下载安装Android Studio 3.3.2版本教程(2026详细图文版)
android·java·windows·android studio
我命由我123454 天前
Android 开发问题:TextView 内容超过宽度时,默认不会换行
android·开发语言·java-ee·android studio·android jetpack·android-studio·android runtime
BoomHe5 天前
git Rebase 为任意一笔提交补上 Change-Id
android·git·android studio
黄林晴5 天前
Google I/O 2026 Android开发者速览
android·android studio
真鬼1235 天前
【Unity安卓】Unity 嵌入 Android Studio 完整流程
android·unity·android studio
子非吾喵5 天前
HBuilder X本地打包的资源放到Android Studio本地打包的记录
android·ide·android studio
李斯维6 天前
Jetpack 生命周期组件 Lifecycle 的设计思想和使用
android·android studio·android jetpack
我命由我123456 天前
Android 开发:Unable to start service Intent { ... } U=0: not found
android·开发语言·android studio·android jetpack·android-studio·android runtime