资源描述
,王健山编著,博瑞教育,Android,Android课程大纲,Android基础,Android中级,Android高级,-Android应用与开发环境,-Android应用的界面编程,-Android的事件处理,-深入理解Activity与Fragment,-使用Intent与IntentFilter通信,-Android应用的资源,-图形与图像处理,-Android数据存储与IO,-ContentProvider实现数据共享,-Service与BroadcastReceiver,-多媒体应用开发,-OpenGL与3D应用开发,-Android网络应用,-管理Android手机桌面,-传感器应用开发,-GPS应用开发,-使用GoogleMap服务,-项目一,-项目二,2.Activity的回调机制,4.Feagment详解,5.Feagment的生命周期,3.Activity的生命周期与加载模式,1.建立、配置和使用Activity,目录,建立、配置和使用Activity,Activity,Activity的作用用户与应用程序交互的接口;作为放置控件的容器。在Activity中添加的控件,程序中通过findViewById(intid)方法,来获取所添加的控件,不过这些组件都要有一个ID。,建立、配置和使用Activity,Activity,建立、配置和使用Activity,配置Activity,Android应用要求所有应用程序组件都必须显示进行配置。为了在AndroidManifest.xml文件中配置、管理Activity,只要为元素添加子元素即可配置Activity。,建立、配置和使用Activity,启动、关闭Activity,一个Android应用通常都会包括多个Activity,但只有一个Activity会作为程序的入口,该Activity会在Android应用运行时,自动启动并执行。至于应用中的其他的Activity,通常由入口Activity启动。,Activity启动其他Activity有如下两种方法:startAstartActivity(Intentintent);启动其他的Activity。ctivityForResult(Intentintent,intrequestCode):以指定请求码(requestCode)启动Activity,而且程序将会等到新启动Activity的结果(通过重写onActivityResult()方法来获取)。,Android为关闭Activity准备了如下两个方法:finish():结束当前Activity。finishActivity(intrequestCode):结束以startActivityForResult(Intentintent,intrequestCode)方法启动的Activity。,建立、配置和使用Activity,使用Bundle在Activity之间交换数据,当一个Activity启动另一个Activity时,常常会有一些数据要传递过去,在Android中,需要传递的数据放在对象Intent中。Intent提供了多个重载的方法来携带额外的数据。putExtras(Bundledata):向Intent中放入需要携带的数据。方法中的Bundle是数据携带包,提供了多个方法存入数据putXxx(Stringkey,Xxxdata):向Bundle中放入各种类型数据。putSerializable(Stringkey,Serializabledata):向Bundle中放入一个可序列化的对象。为了取出Bundle数据携带包里的数据,Bundle提供如下方法。getXxx(Stringkey):从Bundle取出Int、Long等各数据类型数据。getSerializable(Stringkey,Serializabledata):从Bundle取出一个可序列化的对象。,建立、配置和使用Activity,启动其他Activity并返回结果,Activity提供了一个startActivityForResult(Intentintent,intrequestCode)方法来启动其他Activity。该方法用于启动指定的Activity,而且期望获取指定Activity返回的结果。为了获取被启动的Activity所返回的结果,当前Activity需要重写onActivityResult(intrequestCode,intresultCode,Intentintent)。一个Activity中可能包含多个按钮,并调用startActivityForResult()方法来打开多个不同的Activity处理不同的业务。当这些新Activity关闭时,系统都会调用前面Activity的onActivityResult(intrequestCode,intresultCode,Intentintent)方法,利用requestCode区分是哪个请求结果触发的,利用resultCode区分返回的数据来自哪个新的Activity。,下面通过一个实例来介绍如何启动Activity并获取被启动Activity的结果。,Activity的回调机制,Activity被开发出来,开发者只要在AndroidManifest.xml文件配置该Activity即可,至于该Activity何时被实例化,方法何时被调用,对开者来说是完全透明的。前面介绍了事件的回调机制,Activity的回调机制也类似,当Activity被部署在Android应用中之后,随着应用的运行,Activity会不断地在不同的状态之间切换,该Activity中特定的方法就会被回调。,生命周期与加载模式,Activity的生命周期演示,Activity生命周期及相关回调方法如下图所示。,当Activity处于Android应用中运行时,它的活动状态由Android以Activity栈的形式管理。当前活动的Activity位于栈顶随着不同应用的运行,每个Activity都有可能从活动状态转入到非活动状态,也可以从非活动状态转入到活动状态。Activity大致会经过如下四个状态,活动状态:当前Activity位于前台,用户可见,可以获得焦点。暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点。停止状态:该Activity不可见,失去焦点。销毁状态:该Activity结束,或Activity所在Dalvik进程结束。,生命周期与加载模式,Activity的4种加载模式,配置Activity时可指定android:launchMode属性,该属性用于配置该Activity的加载模式,该属性支持如下4个属性值。,Fragment详解,Fragment概述及其设计哲学,Fragment详解,创建Fragment,onCreate():系统创建Fragment对象后回调该方法,实现代码中只初始化想要在Fragment中保持的必要组件,当fragment被暂停或者停止后可以恢复。onCreateView():当Fragment绘制界面组件时会回调该方法。该方法必须返回一个View,该View也就是该Fragment所显示的View。onPause():当用户离开该Fragment时将会回调该方法。,创建Fragment通常需要下面三个方法:,Fragment详解,Fragment的生命周期,在Fragment的生命周期中,如下方法会被系统回调。,
展开阅读全文