当前位置: 首页 > news >正文

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

  • 用于短暂提示用户,不占用界面空间。

  • 示例:

    javaToast.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 属性

属性方法说明
ComponentsetComponent()指定来源与目标组件
ActionsetAction()指定动作行为
DatasetData()指定数据路径(如 tel:, http:)
CategoryaddCategory()附加类别信息
TypesetType()数据类型
ExtrasputExtras()附加数据包
FlagssetFlags()活动标志

4. 启动 Activity 的方式

  • 构造函数指定:

    javaIntent intent = new Intent(this, NextActivity.class);
  • setClass 方法:

    javaintent.setClass(this, NextActivity.class);
  • setComponent 方法:

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

http://www.dtcms.com/a/486689.html

相关文章:

  • 一、前置基础(MVC学习前提)_核心特性_【C# MVC 前置】委托与事件:从 “小区通知” 看懂 MVC 过滤器的底层逻辑
  • 网站建设年度汇报详情页设计理念怎么写
  • Spring Boot项目中Maven引入依赖常见报错问题解决
  • Android 13 启动的时候会显示一下logo,很不友好
  • seo网站快速排名外包关键词seo排名优化如何
  • Linux防火墙:核心机制与安全实践全解析
  • SX1261IMLTRT射频收发器Semtech赋能远距离物联网连接的低功耗射频芯片IC
  • Flutter---坐标网格图标
  • 邢台做网站多少钱洪泽网站建设
  • 整体设计 逻辑系统程序 之30 定稿V1 之1 含 4 套程序架构、三式模型与时空约束体系
  • 基于单片机的智能洗衣机的设计与实现(论文+源码)
  • 【ComfyUI】SDXL Revision 文本提示实现参考图像概念迁移生成
  • Zabbix 模板、监控项、图形指南
  • 个人如何做网站软件湛江免费制作网站
  • 嘉兴公司网站模板建站建设厅官方网站
  • 【javaFX基础】javaFX文档学习及基础编程实践
  • [c++语法学习]Day10:c++引用
  • iOS App 上架全流程详解:证书配置、打包上传、审核技巧与跨平台上架工具 开心上架 实践
  • C++设计模式_行为型模式_迭代器模式Iterator
  • [iOS] KVC 学习
  • 网站开发中用到的英文单词舅舅建筑网
  • 怎么做交易网站seo整体优化
  • 基于卷积神经网络的苹果叶片病虫害识别系统,resnet50,vgg16,resnet34【pytorch框架,python代码】
  • 【计算机组成原理】第七章:输入/输出系统
  • 深入理解 Linux NUMA:拓扑、分配策略与调优实践
  • logstash常遇问题(logstash Address already in use 5044)
  • 断点调试介绍与使用案例
  • Kafka在美团数据平台的实践
  • 【完整源码+数据集+部署教程】Aura棕榈油果实分割系统: yolov8-seg-C2f-DCNV2-Dynamic
  • 蛋白表达标签:提升重组蛋白研究与生产的关键工具