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

相关推荐
stevenzqzq18 小时前
Android Studio 断点调试核心技巧总结
android·ide·android studio
冬奇Lab21 小时前
【Kotlin系列01】Kotlin快速入门:环境搭建与Hello World
android·kotlin·android studio
zhanglb122 天前
Gradle 全局配置使用
gradle·android studio·intellij idea
stevenzqzq2 天前
Android Studio Logcat 基础认知
android·ide·android studio·日志
朝花不迟暮2 天前
使用Android Studio生成apk,卡在Running Gradle task ‘assembleDebug...解决方法
android·ide·android studio
我命由我123452 天前
Kotlin 面向对象 - 装箱与拆箱
android·java·开发语言·kotlin·android studio·android jetpack·android-studio
我命由我123452 天前
Android Jetpack Compose - Snackbar、Box
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
Icarus_2 天前
IDEA Android studio 快捷鍵
java·android studio·intellij-idea
Jennifer33K2 天前
AndroidStudio报错:minSdk(APl 33)> deviceSdk(APl 30)
android·gradle·android studio
我命由我123453 天前
Kotlin 运算符 - == 运算符与 === 运算符
android·java·开发语言·java-ee·kotlin·android studio·android-studio