【转】Activity 、Intent深入解析

【Android基础】Activity启动模式以及Intent Flags 与 栈 的全面解析 Android开发的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制。 Intent主要用于2种情景下:发起意图 、广播其底层实现原理不在此篇文章的讨论范围,以后会陆续更新上的。 下面我就根据近期学习,总结记录下Activity启动模式 及 Intent Flags 与 栈 的关联分析。1、首先我们先搞清楚什么是栈:栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像 阅读详情

原文地址:http://www.moandroid.com/?p=1084


学习Android SDK有段时间了,对Activity 、Intent的学习与使用都比较了解。第一次完整的学习Activity 、Intent后,我就感觉这似乎与Windows COM技术有些似曾相识的感觉,写了一篇将Activity 与 COM做了比较,但是一直感觉意犹未尽,前几天在程序员杂志中看到一篇经典的文章,茅塞顿开。

声明:源文章来源于程序员2008年的第一期杂志,本人将这篇文章整理后与大家分享。

首先我们来了解一个概念:Mash-up。

什么是Mash-up?

举个简单的例子:从一个网页上抓下一块XHTML 数据,再从另一个Web Services 那里获得一些XML数据,就可以把这两块数据mash-up起来,形成新的XML数据,并且这一数据可以在此被别人mash-up。

Android、Intent的深入解析

在Android软件环境中,应用程序是由一组Activities 组成的,而每一个Activity 不但是本应用的组成部分,而且也对外开放,可以向同一系统内任何一个外部应用提供服务。例如,编制手机短信无疑需要一个小型编辑器,这个编辑器在Android中由一个Activity 实现,并且可以以构件的形式暴露出来。如果开发者在开发另外一个应用程序的过程中需要一个小型编辑器,则无须重新开发,可直接调用短信应用中的这个编辑器Activity 得以实现。这种多层次的组合能力,与Web 2.0 基于XML的mash-up如出一辙。

Android 调用activity 所提供的接口(服务),并不是直接调用,而是借助一个叫做Intent 的机制实现的。所谓intent 就是对于服务的调用请求。与其他技术体系不同的是,Android可以无须明确地指定要那个组(activity)来满足自己的调用请求,而是可以要求系统根据它的要求,自动选择一个能够满足要求的activity 来提供所需的服务。

大致的过程如下:每一个activity 都可以对外提供一系列的服务,这些服务以Intent-filter 的形式对外公开,并提交给系统进行注册。所谓intent-filter,就是一个activity 的能力列表。例如,一个用于编辑短信正文的文本编辑器activity 应通过AndroidManifest.xml文件中的 元素向系统注册,表明activity具有EDIT 和VIEW文本数据的能力,如果有另一个客户要求EDIT和VIEW一段文本数据,则系统可以调用本activity 予以满足。Activity 本身既是提供服务的组件,也可以是组件的客户。

例如一个备忘录应用中,应用启动时可以显示一个现有备忘录的列表,这是由一个activity 实现的。而当用户选择编辑或新建一个备忘时,这个activity 需要一个文本编辑器activity 来完成这项工作。它怎么做呢?当然不需要自己从头开发一个,而只需要以intent 的方式告诉系统说:“我需要一个具有编辑文本能力的activity 来帮我编辑一个备忘信息”,系统会自动寻找在 中声称具有该项能力的activity,然后激活这个activity,用来满足这个intent。

Windows平台的开发人员会发现,上述的工作方式与COM 很相近,2者的比较如下图所示:

activity

Mush-up的作用

如果Android 平台提供的基础构件足够丰富,则开发新的应用程序将变得高度简化:开发者可以利用现Activities 快速组合出应用程序的主体,只有程序的特色功能需要亲自实现,这无疑极大地提升了生产力和软件质量。不但如此,新实现的Activities 也可以作为其他应用的构件而被再次组合。

总结说明

Mash-up 是Web 2.0 平台上的关键技术概念之一。Android 平台在技术上的最大亮点,就是将mash-up 技术引入了手机操作系统。实际上以现有成熟构件为基础,通过组合方式快速构造和开发新应用,这样的想法并非Android 首创,在Windows系统中的COM技术就是这种思想的体现。

Android之父曾经特别强调过:Android吸收了从COM构件体系到Web 2.0等技术体系的思想精髓,实现了多处技术创新,其中尤以应用程序级别的mash-up为最令他自豪的特性。

intent的常用方法 intent的常用方法 Intent在Android中的几种用法 文章分类:综合技术 立即下载

相关推荐

python文本爬虫(爬好-看-视频网站)下载急用

环境:python3.7+wingide 建议:有一定python基础 需要文本爬虫处理网站的 可直接下载即可运行

Activity 、Intent深入解析

学习Android SDK有段时间了,对Activity 、Intent的学习与使用都比较了解。第一次完整的学习Activity 、Intent后,我就感觉这似乎与Windows COM技术有些似曾相识的感觉,写了一篇将Activity 与 COM做了比较,但是一直感觉意犹未尽,前几天在程序员杂志中看到一篇经典的文章,茅塞顿开。声明:源文章来源于程序员2008年的第一期杂志,本人将这篇文章整理

arm10504的专栏 635

SAP Script表单开发中ABAP preform方法的实战应用与调试技巧

本文深入探讨了在SAP Script表单开发中调用ABAP程序(preform方法)的实战应用与调试技巧。通过一个获取供应商版本名称的实例,详细讲解了如何在SE71中嵌入PERFORM指令、编写ABAP子程序进行数据查询与处理,并重点介绍了使用SAP Script Debugger进行高效调试的方法,帮助开发者灵活扩展表单功能,实现复杂业务逻辑。

o0p1q2r3的博客 551

Android学习笔记——第一章 Activity与intent

Android学习笔记——第一章 Activity与intent 活动(activity)是什么? Activity活动存在于android中,是所有程序的根本.........

white_mvlog的博客 1597

AI for Science:GNN预测分子性质全流程详解与工业实践

从分子表示到工业落地,一文掌握图神经网络在药物研发与材料设计中的核心实战近年来,的浪潮正深刻变革着传统科研范式。在药物研发与材料设计领域,作为核心环节,已从传统的实验试错转向基于图神经网络(GNN)的智能计算。本文将深入解析GNN预测分子性质的,涵盖数据准备、模型设计、训练优化到工业部署,并揭秘前沿技术与实战案例。

datacanvas2426的博客 1674

从拆解到调试:用CS5523改造旧款车载显示屏的完整记录(MIPI转eDP方案)

本文详细记录了使用CS5523芯片将旧款车载显示屏从MIPI接口改造为eDP驱动的完整过程。通过对比LT8911等芯片,选择CS5523实现低功耗、高兼容性的显示升级,涵盖硬件改造、固件配置及调试技巧,最终成功提升显示效果200%。

web99的专栏 343

Android学习-基础知识(Activity、Intent)

目录 1.四大组件 2.原始代码介绍: 3.Activity基本用法(参考第一行代码2.2部分) 3.1手动创建activity 3.2创建和加载布局 3.3在AndManifest文件中注册 3.4在activity中使用Toast(提醒) 3.5在activity中使用Menu 3.6销毁一个activity Intent android 分为四层架构:Linux内核层(为硬件设备提供底层驱动),系统运行层(为系统提供特性支持),应用框架层(构建程序使用的API),应用层(手...

weixin_42133317的博客 938

PCL点云算法与项目实战案例汇总(长期更新)

本专栏将深入探讨PCL(点云库)的基础算法,旨在帮助读者掌握点云处理的核心技术。内容涵盖点云的采样、过滤、配准、分割等基础操作,并结合实际案例,展示这些算法在工程中的应用。无论你是初学者还是有一定经验的开发者,都能通过本专栏加深对PCL的理解,提升在三维数据处理领域的技能。

纵马踏花向自由 3001

5、四大组件之一-Activity与Intent

一、Activity的定义及作用 1)官方定义:Activity是Android应用程序提供交互界面的一个重要组件 。也是Android最重要的组件之一 2)Activity是业务类 , 是承载应用程序的界面以及业务行为的基础 。 包括UI , Service ...... 类似于我们的JavaBean 3)“脸”的表现都靠Activity了 。 4)说Activity就不...

dianwei5413的博客 273

【python数据处理】python实现vlookup字符串模糊匹配及在实战中的应用(FuzzyWuzzy库)

利用FuzzyWuzzy库匹配字符串1. 背景前言2. FuzzyWuzzy库介绍2.1 安装2.1 fuzz模块2.1.1 简单匹配(Ratio)2.1.2 非完全匹配(Partial Ratio)2.1.3 忽略顺序匹配(Token Sort Ratio)2.1.4 去重子集匹配(Token Set Ratio)2.2 process模块2.2.1 extract提取多条数据2.2.2 extractOne提取一条数据3. pandas实战应用3.1 公司名称字段模糊匹配3.1.1 参数讲解:3.1.2

lys_828的博客 8321

华为OD机试 - 小火车最多人时所在园区站点(Java 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 995

[Android学习笔记] -- Activity和Intent

刚看完Activity和Intent的教程视频,记下了关于什么是Activity和Intent以及一些示例代码。

Roy's Blog 1563

UNet 改进(39):结合残差连接与CBAM注意力机制的unet模型

本文提出了一种改进的UNet架构,通过融合残差连接和CBAM注意力机制来增强医学图像分割性能。该网络保留UNet的U形结构,但将基础模块替换为ResidualBlock和CBAM的组合:残差块通过快捷连接解决梯度消失问题,CBAM模块结合通道和空间注意力机制突出重要特征。整体架构采用编码器-解码器设计,包含5个下采样和上采样阶段,通过跳跃连接融合多尺度特征。实验表明,这种改进显著提升了原始UNet的性能,特别适用于需要精细边界的医学图像分割任务。

2401_82355416的博客 1015

(转)Activity 、Intent深入解析

Activity 、Intent深入解析 By: 海市蜃楼 | In: Android开发 学习Android SDK有段时间了,对Activity 、Intent的学习与使用都比较了解。第一次完整的学习Activity 、Intent后,我就感觉这似乎与Windows COM技术有些似曾相识的感觉,写了一篇将Activity 与 COM做了比较,但是一直感觉意

gxj1680的专栏 441

RK3588开发笔记-ISP模块参数调试

本文详细介绍了基于RK3588平台的ISP模块参数调试流程。主要内容包括:硬件准备(RK3588板卡、IMX415摄像头等)、软件环境搭建(Ubuntu系统、RKISP_Tuner工具)、IMX415摄像头基础使用验证、RKISP2.x Tuner工具的使用方法(新建/加载IQ参数文件、Sensor配置、Raw图采集)以及最终IQ文件的部署。文章重点强调了基础标定的重要性,建议开发者分场景调试并参考官方文档,通过合理配置ISP参数来优化图像质量。该调试流程适用于RK3588平台的图像采集类项目开发。

flypig has a dream! 834

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

{转}Activity 、Intent深入解析[醍醐灌顶]

<br /><br />学习Android SDK有段时间了,对Activity 、Intent的学习与使用都比较了解。第一次完整的学习Activity 、Intent后,我就感觉这似乎与Windows COM技术有些似曾相识的感觉,写了一篇将Activity 与 COM做了比较,但是一直感觉意犹未尽,前几天在程序员杂志中看到一篇经典的文章,茅塞顿开。<br />声明:源文章来源于程序员2008年的第一期杂志,本人将这篇文章整理后与大家分享。<br />首先我们来了解一个概念:Mash-up。什么是

a3015440的专栏 602

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Activity与intent解析

1.先从看的见的入手(Toast与Menu) Toast是一种android中一种非常好的提醒方式,它可以将一些短小的信息通知给用户,一段时间后自动消失,不会占用任何的屏幕空间。 Menu则可以大幅度帮我们节省屏幕空间,将菜单收缩。 具体实现 我们先在res目录下新建menu文件夹:右击res目录-New-Directory 再再menu文件夹下新建main菜单文件:右击menu文件夹-New-M...

weixin_43312313的博客 762

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

使用Intent来启动Activity并传递参数

要创建并显示一个Activity,可以调用sta

cxcbupt 3万+

Activity和Intent的使用

*应用场景:**适用于一些文章类的内容呈现页面,为了解决用户页面交互可能需要多次按返回键回到主页的场景(这种场景的发生,往往和系统通知栏打开页面有关,当然还有可能是特定的交互设计,希望快速回到任务栈中的特定页面),我们使用singleTop模式。**应用场景:**适用于app里面的大部分普通页面,打开一个新的页面,就创建一个Activity,由于标准启动模式的是最普通的模式,所以在使用场景这块,主要是看页面交互需求里,哪些不适合标准启动模式,我们要用新的启动模式替换标准启动模式。

2401_86454378的博客 1387

Android: 通过 intent 启动 Activity

通过 intent 启动 Activity Intent 种类 Exported 属性 Category 总结 Explicit Intent 启动 Activity Implicit Intent 启动Activity通过 intent 启动 ActivityIntent 种类 Intent 有两种: Explicit intents 显示意图 通过指定明确的包名和类名来启动一

KKkeep的专栏 1120

Activity、Intent、Service 三者的关系深度解析

"Intent实现了调用方与被调方的完全解耦,比如Activity不需要知道具体哪个Service会处理请求":"通过AndroidManifest的<intent-filter>声明,系统可以统一管理组件可见性":"基于Binder的Intent传递机制,使得APP间的组件调用成为可能":"PendingIntent等衍生设计支持通知栏等系统级交互"系统通过Activity栈管理导航(先进后出):用户交互的窗口单元(一个屏幕界面):Android应用的"门面担当":Android系统的"通信大使"

斗锋在干嘛的博客 1069

使用Intent启动Activity

Intent的最常用的用途是绑定应用程序组件。Intent用来在应用程序的Activity间启动、停止和传输。   这一章节中关于启动新的Activity的提示,也同样适用于Service。第8章可以了解到关于启动(和创建)Service的细节。   为了打开应用程序中不同的画面(Activity),调用startActivity,传入一个Intent,如下面的片段所示:

阳光灿烂的日子的博客 1828
上一篇: [转]Android之父深入解析Android
下一篇: 【转】Android DDMS详细使用说明
Linux先生
博客等级 码龄20年 97粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值