中职 Android智能手机软件开发教程第7章电子课件 高教版 .ppt
-
资源ID:90819994
资源大小:3.03MB
全文页数:41页
- 资源格式: PPT
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
中职 Android智能手机软件开发教程第7章电子课件 高教版 .ppt
第7 章 基于Intent 的Activity 切换 及基于Buddle 的数据传递 了解Intent的运行机制,了解Intent组成。掌握常用的Activity切换方法,了解利用Intent完成特定应用程序的步骤。理解Buddle的键值对机制,掌握利用Buddle在Intent中的使用及数据传递过程。本章学习目标 作为不同UI间通信的信使,Intent相当于各个Activity间的桥梁,Activity之间通过Intent进行交互,可以通过Intent启动另外的Activity、启动Service、发起广播Broadcast等,并通过Buddle传递数据,Intent的使用方式有以下3种 通过startActivity()来启动一个新的Activity,一般需要调用Context.startActivity或Context.startActivityForResult()来传递Intent。通过broadcast机制可以将一个Intent发送给任何对这个Intent感兴趣的Broadcast Receiver,此时一般通过Context.sendBroadcast()、Context.sendOrderedBroadcast()或Context.sendStickyBroadcast()方法传递。当BroadcastIntent被广播后,所有Intent Filter过滤条件满足的组件都将会被激活。当需要启动或绑定一个Service组件时,会通过Context.startService(Intent)和Context.Context.bindService(Intent,ServiceConnection,int)来和后台的Service交互。7.1 Intent 概述 Intent由组件名称、执行动作描述Action、该动作相关联的数据的描述Data、动作分类描述Category、数据类型描述Type、目标组件描述Component、附加信息描述Extras及Flag等几部分组成 组件名称:用于标识唯一的应用程序组件,即指明了期望的Intent组件,一般由相应组件的类名与包名组合而成 Action:Action实际上是一个描述了Intent即将触发动作的名称的字符串,在Intent类中已经有一些用常量字符串表示的不同Action7.2 Intent 的组成 Data:Android中采用执行数据的一个URI来表示Data Category:Category是对目标组件类别信息的描述 Extra:Extra中封装了一些额外的以键值对形式存在的附加信息。Intent通过putExtras()与getExtras()方法来存储和获取Extra。Flag:一些有关系统如何启动组件的标志位。Intent filter实际上相当于Intent的过滤器,一个应用程序开发完成后,需要告诉Android系统自己能够处理哪些隐性的Intent请求,这就要声明Intent filter,用于声明该应用程序接收什么样的Intent请求即可。Intent filter过滤Intent时,一般是通过Action、Data及Category三方面进行检测 检查Action 检查Data 检查Category7.3 Intent filter 显式Intent直接指明要启动的组件:intent.setClass(源Activity名.this,目的Activity名.class);startActivity(intent)隐式Intent方式没有指定component属性,因此需要Android进行解析,并将此Intent映射给可以处理此Intent的Activity、Receiver或Service,解析过程中,Android是通过Intent的action、type、category等属性来进行判断的。显式与隐式intent Intent在传递过程中要找到目标消费者,它们往往是另一个Activity、IntentReceiver或Service一般有两种方法来匹配:一种是直接指定目的Activity的显示匹配。另一种是隐式匹配,此时要匹配Intent的几项值 1.Action的值在Android中有很多预定义,如果想直接转到自己定义的Intent接收者,可以在接收者的IntentFilter中加入一个自定义的Action值 2Data/Type:可以用Uri来做为data 3.Category:一般不需要在Intent中设置。如果写Intent Receiver,就在AndroidManifest.xml的Activity的IntentFilter中包含android.category.DEFAULT,这样所有不设置Category的Intent都会与这个Category匹配。4.extras:是其它所有附加信息的集合 7.4.1 启动同一个工程中的另一个Activity Intent最常用的用途就是连接一个应用当中的各个Activity 启动一个特定Activity核心代码如下:intent.setClass(源Activity名.this,目的Activity名.class);startActivity(intent)述代码被执行后目的Activity将被创建并移到整个Activity堆栈的顶部。主Activity中部分相关代码如下(注意在AndroidManifest文件中添加对SecondActivity的说明)import android.content.Intent;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;/其他import语句略 public class HelloIntent_MainActivity extends Activity Button startBtn;/定义Button示例 Override public void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);/采用main.xml布局 startBtn=(Button)findViewById(R.id.mybutton1);/将Button实例和布局中定义的Button建立联系 startBtn.setOnClickListener(new OnClickListener()/侦听Button被单击 public void onClick(View v)Intent 案例