资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2019/8/22,#,第二章 探究活动,2.1,什么是活动,2.5,使用,Intent,在活动中穿梭,2.3,活动的启动模式,2.7,小结,2.6,使用,Intent,传递数据,2.2,活动的生命周期,2.4,活动的基本用法,2.1,什么是活动,活动(,Activity,)就是我们要学习的第一个组件。活动(,Activity,)为用户提供可视化界面及操作,负责管理,Android,程序的用户界面。一个应用程序通常包含多个活动(,Activity,),每个活动(,Activity,)负责管理一个用户界面,在每个界面里可以添加多个控件来实现不同的功能。,2.2,活动的生命周期,在,Android,程序中,大部分组件都有自己的生命周期。掌握活动(,Activity,)的生命周期在,Android,学习中非常重要,活动(,Activity,)的生命周期包含了,4,种状态,活动(,Activity,)类中定义了,7,个回调方法,覆盖了生命周期的每一个状态。,2.2,活动的生命周期,2.2.1,生命周期的状态,活动(,Activity,)生命周期指的是从创建到销毁的全过程。每个活动(,Activity,)在其生命周期最多可能会有,4,种状态,Activity,处于屏幕最前端,可与用户进行交互。,Activity,仍然可见,但无法获取焦点,用户对它操作没有响应。,Activity,完全不可见,系统内存不足时会销毁该,Activity,。,Activity,将被清理出内存。,运行,状态,暂停,状态,停止,状态,销毁,状态,2.2,活动的生命周期,2.2.2,生命周期方法,在,Activity,创建时调用,在,Activity,即将可见时调用,Activity,获取焦点开始与用户交互,当前,Activity,被其他,Activity,覆盖时调用,Activity,对用户不可见时调用,Activity,销毁时调用,Activity,从停止状态再次启动时调用,2.3,活动的启动模式,2.3.1,活动中的任务栈,栈是一种“先进后出”的数据结构。,Android,中,采用任务栈的形式来管理,Activity,。,启动,Activity,2,启动,Activity,3,Activity,3,Activity,3,任务栈,Activity,1,Activity,2,停止,Activity,3,2.3,活动的启动模式,2.3.2,活动的四种启动模式,standard,模式是,Activity,的默认启动方式,每启动一个,Activity,就会在栈顶创建一个新的实例。,启动,Activity,3,任务栈,任务栈,Activity,1,启动,Activity,2,Activity,2,Activity,3,2.3,活动的启动模式,2.3.2,活动的四种启动模式,singleTop,模式会判断要启动的,Activity,实例是否位于栈顶,如果位于栈顶则直接复用,否则创建新的实例。,启动,Activity,2,Activity,2,不在栈顶,需要创建新的,Activity,启动,Activity,3,Activity,3,位于栈顶,直接复用,不需要创建新的,Activity,任务栈,Activity,1,Activity,2,Activity,3,Activity,2,2.3,活动的启动模式,2.3.2,活动的四种启动模式,singleTask,模式下每次启动该,Activity,时,系统首先会检查栈中是否存在当前,Activity,实例,如果存在则直接使用,并把当前,Activity,之上的所有实例全部出栈。,Activity,3,Activity,3,Activity,4,Activity,4,启动,Activity,2,任务栈中有,Activity 2,,则直接使用,并将,Activity 2,之上的所有,Activity,移除,任务栈,Activity,1,Activity,2,移除,Activity 3,和,Activity 4,2.3,活动的启动模式,2.3.2,活动的四种启动模式,singleInstance,模式会启动一个新的任务栈来管理,Activity,实例,无论从哪个任务栈中启动该,Activity,,该实例在整个系统中只有一个。,任务栈,A,Activity,1,Activity,2,启动,Activity,3,任务栈,B,创建新任务栈,B,用于管理,Activity3,Activity,3,2.4,活动的基本用法,2.4.1,活动的创建,在程序的包名出单击右键,选择,NEW,Activity,Empty Activity,选项,,填写,Activity,信息,完成创建。,2.4,活动的基本用法,2.4.2,在,AndroidManifest,文件中注册,打开,AndroidManifest.xml,文件进行查看,新的,Activity,注册,2.5,使用,Intent,在活动中穿梭,2.5.1 Intent,介绍,Intent,也被称作意图,是程序中各组件进行交互的一种常用方式,,Intent,不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。,一般用于启动活动、服务和发送广播等。根据开启目标组件的方式不同,,Intent,大致被分为两种:显式,Intent,和隐式,Intent,。,2.5,使用,Intent,在活动中穿梭,2.5.1 Intent,介绍,显式,意图,隐式,意图,显式意图可以直接通过名称开启指定的目标组件,隐式意图通过,指定,action,和,category,等属性,系统根据这些信息进行分析后寻找目标,Activity,2.5,使用,Intent,在活动中穿梭,显示意图,创建一个,Intent,对象,其中第,1,个参数为,Context,表示当前的,Activity,对象,第,2,个参数表示要启动的目标,Activity,。,调用,Activity,的,startActivity,方法启动目标组件,2.5,使用,Intent,在活动中穿梭,隐式意图,设置,action,动作,当与清单文件中的,action,相匹配时启动目标组件,。,设置,action,动作,当与代码中的,action,与该,action,相匹配时启动该,组件。,2.5,使用,Intent,在活动中穿梭,2.5.2,隐式意图的应用,2,3,功能描述:,技术要点:,AndroidStudio,中选择,【File】,【New】,【New Project】,选项创建项目,点击工具栏中,【AVD Manager】,按钮启动模拟器,点击工具栏中的运行按钮运行程序,案例代码(详见教材,P29P30,),实现步骤:,打开,Android Studio,首页,。,使用,AndroidStudio,创建程序,,使用模拟器运行程序并通过隐式意图打开首页,。,1,2.6,使用,Intent,传递数据,2.6.1,数据传递,Activity,之间传递数据需要用到,Intent,提供的,putExtra(),方法。,在,MainActivity,中放入数据传递给,Main2Activity,。,在,Main2Activity,中获取,MainActivity,中传递的数据。,2.6,使用,Intent,传递数据,2.6.2,数据回传,Activity,中提供了一个,startActivityForResult(Intent intent,int requestCode),方法也是用来启动活动的,并且这个方法可以在当前活动被销毁时返回一个结果给上一个活动。,在,MainActivity,中开启,Main2Activity,在,Main2Activity,中添加返回数据,2.6,使用,Intent,传递数据,2.6.2,数据回传,在,Main2Activity,被销毁之后会回调,MainActivity,的,onActivityResult(),方法,因此需要在,MainActivity,中重写,onActivityResult(),方法来得到返回的数据。,重写,onActivityResult(),方法获得返回数据,2.6,使用,Intent,传递数据,2.6.3,综合案例,2,3,功能描述:,技术要点:,新建名片界面的设计与实现,数据展示界面的设计与实现,名片界面逻辑代码的设计与实现,数据展示界面逻辑代码的设计与实现,案例代码(详见教材,P32P41,),实现步骤:,新建联系人实现数据回传,。,使用,Intent,传递数据,,获取,Intent,中的数据。,1,2.7,小结,本章主要介绍了关于活动所有重要的知识点,包括活动的基本用法、启动活动、传递数据的方法、活动的生命周期以及活动的启动模式;活动作为,Android,的四大组件之一,在应用程序中凡是有界面的都会使用到活动,因此必须熟练掌握该组件的使用。,大连理工大学出版社,THANKS!,
展开阅读全文