Activity跳转方式分析.doc_第1页
Activity跳转方式分析.doc_第2页
Activity跳转方式分析.doc_第3页
全文预览已结束

下载本文档

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

文档简介

Activity跳转方式分析Intent 简介:Android世界的四大组件Activity、BroadcastReceiver、Service、Content Provider中,其中前三位都是通过Intent来解析进行跳转的,Intent可以说是连接这四大的重要桥梁。下面简单介绍Intent是如何解析的。1 Activity的跳转为:startActivity(Intetn i) ;/无需返回结果startActivity(Intent I, intrequestCode) ; / 需要返回结果2. Service的跳转为:startService(Intent service) ;3. BroadcastReceiver的跳转为:sendBroadcastReceiver(Intent intent) /无序广播sendOrderBroadcastReceiver(Intent intent) /有序广播可以显示构造Intent来直达跳转目标,也可以隐式构造Intent继而通过一定的匹配规则来跳转到目标上,当然可能发生找到多个或0个目标上,当找到多个目标是,系统会提示用户选其一,找不到Intent时则会发生找不到类得异常。1显示Intent:通过显示指定目标,Intent直接跳转。指定方法包括: Intent intent=new Intent() ;Intent.setClass(context,”跳转目标”)当然还有一些类似的构造方法来显示构造Intent。然后以一定的方式来发送Intent。 2. 隐式Intent:通过传送一定的信息量(Android中信息量为:action、category以及data)。然后以一定的解析规则在AndroidManifest.XML文件中来匹配这些已经注册的信息量,从而进行跳转。示例: AndroidManifest.xml的一个已注册Activity隐式构造的一个Intent,通过匹配规则找到目标Intent。当然,一个组件可以有多个Intent-Filter或者多个信息量,以便进行不同的操作,类似于JSP的一个页面可以根据传递来的信息进行添加或修改。隐式Intent解析过程如下:1. Android把安装的包中可获得的Intent Filter放到一个列表中。2. 动作和与正在解析的Intent的种类不关联的Intent Filter会从列表中删除。2.1. 动作匹配指Intent Filter包含特定的动作或没有指定的动作。一个Intent Filter有一个或多个定义的动作,如果没有任何一个能与Intent指定的动作匹配的话,这个Intent Filter在算作是动作匹配检查失败。2.2. 种类匹配更为严格。Intent Filter必须包含所有在解析的Intent中定义的种类。一个没有特定种类的Intent Filter只能与没有种类的Intent匹配。3. 最后,Intent的数据URI中的部分会与Intent Filter中的data标签比较。如果Intent Filter定义scheme,host/authority,path或mimetype,这些值都会与Intent的URI比较。任何不匹配都会导致Intent Filter从列表中删除。没有指定data值的Intent Filter会和所有的Intent数据匹配。3.1. mimetype是正在匹配的数据的数据类型。当匹配数据类型时,你可以使用通配符来匹配子类型(例如,earthquakes/*)。如果Intent Filter指定一个数据类型,它必须与Intent匹配;没有指定数据的话全部匹配。3.2. scheme是URI部分的协议例如,http:,mailto:,tel:。3.3. host-name或“data authority”是介于URI中scheme和path之间的部分(例如,)。匹配主机名时,Intent Filter的scheme也必须通过匹配。3.4. 数据path是紧接在“data authority”的后面(例如,/ig)。path只在scheme和host-name部分都匹配的情况下才匹配。4. 如果这个过程中多于一个组件解析出来的话,它们会以优先度来排序,可以在Intent Filter的节点里添加一个可选的标签。最高等级的组件会返回。通过这些匹配规则,系统会依照信息量来进行匹配隐式Intent目标。而且,Intent也可以携带数据putXXX(key ,value)包括Bundle数据以及简单数据的携带,然后通过putXXX(key)来获得数据。Activity跳转:如上所说,可以通过显示Intent或隐式Intent来进行Activity之间的跳转,使用方法为startActivity(intent) 。跳转方法有 1 startActivity(Intetn i) ; /无需返回结果2 startActivity(Intent I, intrequestCode) ; / 需要返回结果1, startActivity方法:当调用startActivity方法后,调用者Activity进入onPause()或onStop()方法甚至已经onDestroy()掉。2, startActivityForResult方法:方法原型:调用此方法后,调用者Activity进入onPaus

温馨提示

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

最新文档

评论

0/150

提交评论