Android移动应用开发教程 课件 4.2、意图_第1页
Android移动应用开发教程 课件 4.2、意图_第2页
Android移动应用开发教程 课件 4.2、意图_第3页
Android移动应用开发教程 课件 4.2、意图_第4页
Android移动应用开发教程 课件 4.2、意图_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

意图Android汇报人:XXX目录1234Intent概述Intent组成案例实现01章节PARTIntent概述添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字

Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件(目标组件),并完成组件的调用。Intent可以通过显示方式或隐式方式找到目标组件,显示方式是直接通过设置组件名来实现,总是可以将内容发送给它的目标;而隐式方式则是通过IntentFilter过滤实现。Intent概述核心组件调用方法作用ActivityContext.startActivity()Activity.startActivityForRestult()启动一个Activity或使一个已存在的Activity去做新的工作ServicesContext.startService()初始化一个Service或传递一个新的操作给当前正在运行的ServiceContext.bindService()绑定一个已存在的ServiceBroadcastReceiverContext.sendBroadcast()Context.sendOrderedBroadcast()Context.sendStickyBroadcast()对所有想接受消息的BroadcastReceiver传递消息02章节PARTIntent的组成添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字

Intent对象由以下几个部分组成:动作(Action)、数据(Data)、分类(Category)、组件(Component)和扩展信息(Extra)。Intent的组成组成属性设置属性方法获取属性方法动作ActionsetAction()getAction()数据DatasetData()getData()分类CategoryaddCategory()

组件ComponentsetComponent()setClass()setClassName()getComponent()扩展信息ExtraputExtra()getXXXExtra()获取不同数据类型的数据,如getIntExtra():获取Int、getStringExtra():获取字符串;getExtras()获取Bundle包Component属性用于指明Intent的目标组件的类名称,它是一个ComponentName对象。如果指定了Component这个属性,Intent则会直接根据组件名查找到相应的组件,而不再执行其它查找匹配过程。Intent的组成Component//指定组件名称的目标组件是NextActivity ComponentNamecn=newComponentName(MainActivity.this,"com.cqcet.NextActivity"); //实例化Intent IntentintentTest=newIntent(); //为Intent设置组件名称属性

intentTest.setComponent(cn);//启动Activity startActivity(intent);

Action属性用于描述Intent要完成的动作,对要执行的动作进行一个简要描述。Action属性的值为一个String字符串,它代表了已经定义的一系列常用的动作名称。使用setAction()方法、getAction()方法处理该属性。Intent的组成Action属性名称含义ACTION_MAIN作为一个主要的进入口,而并不期望去接受数据ACTION_VIEW向用户去显示数据ACTION_ATTACH_DATA别用于指定一些数据应该附属于一些其他的地方,例如,图片数据应该附属于联系人ACTION_EDIT访问已给的数据,提供明确的可编辑ACTION_PICK从数据中选择一个子项目,并返回你所选中的项目ACTION_CHOOSER显示一个activity选择器,允许用户在进程之前选择他们想要的ACTION_GET_CONTENT允许用户选择特殊种类的数据,并返回(特殊种类的数据:照一张相片或录一段音)ACTION_DIAL拨打一个指定的号码,显示一个带有号码的用户界面,允许用户去启动呼叫ACTION_CALL根据指定的数据执行一次呼叫(ACTION_CALL在应用中启动一次呼叫有缺陷,多数应用ACTION_DIAL,ACTION_CALL不能用在紧急呼叫上,紧急呼叫可以用ACTION_DIAL来实现)ACTION_SEND传递数据,被传送的数据没有指定,接收的action请求用户发数据ACTION_SENDTO发送一跳信息到指定的某人ACTION_ANSWER处理一个打进电话呼叫ACTION_INSERT插入一条空项目到已给的容器ACTION_DELETE从容器中删除已给的数据ACTION_RUN运行数据,无论怎么ACTION_SYNC同步执行一个数据ACTION_PICK_ACTIVITY为已知的Intent选择一个Activity,返回别选中的类ACTION_SEARCH执行一次搜索ACTION_WEB_SEARCH执行一次web搜索ACTION_FACTORY_TEST工场测试的主要进入点,Intent的Data属性包含两个部分:URI和MIME类型。URI具体格式为:scheme://host:port/path,scheme代表URI使用的协议,包括http、content、tel、mailTo、file等;host是指主机地址,可以是具体的域名地址,也可以是一个程序包名,比如、ent.testaction等;port是指端口地址,比如80端口;path是指内容路径,对于网页一般是指本地网页地址;对于一个程序包则是指具体的Provider名称。Intent的组成Data属性方法名称说明publicIntentsetData(Uridata)设置URI数据PublicIntentsetType(Stringtype)设置数据的MIME类型PubicIntentsetDataAndType(Uridata,Stringtype)设置数据和MIME类型PublicUrigetData()获取数据PublicStringgetType()获取MIME类型Data属性说明示例tel://号码数据格式,后跟电话号码tel://123mailto://邮件数据格式,后跟邮件收件人地址mailto://dh@163.comsmsto://短息数据格式,后跟短信接收号码smsto://123content://内容数据格式,后跟需要读取的内容content://contacts/people/1file://文件数据格式,后跟文件路径file://sdcard/mymusic.mp3geo://latitude,longitude数据格式,在地图上显示经纬度所指定的位置geo://180,65Action属性Data属性描述ACTION_VIEWcontent://contacts/people/1显示_id为1的联系人信息ACTION_EDITcontent://contacts/people/1编辑_id为1的联系人信息ACTION_VIEWtel:123显示电话为123的联系人信息ACTION_CALLtel:123拨打电话,电话号码为123ACTION_VIEW在浏览器中浏览该网页ACTION_VIEWfile:///sdcard/mymusic.mp3播放MP3

Intent中的Category属性是一个执行Action的附加信息,也是string类型,该属性一般用于指定可以响应某Intent程序段的类型。Intent的组成Category属性Category属性说明CATEGORY_DEFAULT默认的执行方式,按照普通Activity的执行方式执行CATEGORY_HOME该组件为HomeActivityCATEGORY_LAUNCHER优先级最高的Activity,通常为入口ACTION_MAIN配合使用CATEGORY_BROWSABLE可以使用浏览器启动CATEGORY_GADGET可以内嵌到另外的Activity中

Intent的Extras属性是添加一些组件的附加信息。Extras属性的数据类型为Bundle,Bundle是一种键值对的数据类型。通过使用Intent对象的putExtra()方法来添加附加信息,通过使用Intent对象的getXXXExtra()方法可以获取附加信息。Intent的组成Extras属性标志(flag)主要用来指示Android程序如何去启动一个活动可以使用setFlags()方法和addFlags()方法添加标志到到Intent对象中,使用getFlags()方法获得对象中的所有标志。Intent的组成标志名称含义FLAG_ACTIVITY_CLEAR_TOP如果在当前的Task中有要启动的Activity,那么把该Activity之前的所有Activity都关掉,并把该Activity置前避免创建Activity的实例FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET如果设置,这将在Task的ActivityStack中设置一个还原点,当Task恢复时,需要清理ActivityFLAG_ACTIVITY_EXCLUDE_FROM_RECENTS如果设置,新的Activity不会在最近启动的Activity的列表中保存FLAG_ACTIVITY_FORWARD_RESULT如果设置,并且这个Intent用于从一个存在的Activity启动一个新的Activity,那么,这个作为答复目标的Activity将会传到这个新的Activity中。这种方式下,新的Activity可以调用setResult(int),并且这个结果值将发送给那个作为答复目标的ActivityFLAG_ACTIVITY_LAUNCHED_FROM_HISTORY这个标志一般不由应用程序代码设置,如果这个Activity是从历史记录里启动的(常按HOME键),那么,系统会帮你设定FLAG_ACTIVITY_MULTIPLE_TASK不建议使用此标志,除非你自己实现了应用程序启动器FLAG_ACTIVITY_NEW_TASK将使Activity成为一个新Task的开始FLAG_ACTIVITY_NO_ANIMATION这个标志将阻止系统进入下一个Activity时应用Acitivity迁移动画FLAG_ACTIVITY_NO_HISTORY新的Activity将不再历史stack中保留。一旦离开,此Activity就关闭了FLAG_ACTIVITY_NO_USER_ACTION这个标志将在Activity暂停之前阻止从最前方的Activity回调的onUserLeaveHint()FLAG_ACTIVITY_REORDER_TO_FRONT这个标志将引发已经运行的Activity移动到历史stack的顶端FLAG_ACTIVITY_SINGLE_TOP如果Activity位于ActivityStack的顶端,则不再创建一个新的实例03章节PART案例实现添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字创建项目,定义资源项目名称为“Intent消息”,入口Activity取默认的“MainActivity”,根据界面设计的需要,需要定义一些界面显示的字符串资源设计界面在线性布局中添加一个textview用以显示标题;接着添加TableLayout,根据需要在TableLayout中添加其他各个所需的组件。编写代码,修改配置文件<activityandroid:name=".ShowInfo"android:exported="false"/><activity

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论