深入理解Activity.ppt_第1页
深入理解Activity.ppt_第2页
深入理解Activity.ppt_第3页
深入理解Activity.ppt_第4页
深入理解Activity.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第 7 讲,深入理解Activity,纲要,建立、配置和使用Activity Activity的回调机制 Activity的生命周期 小结,1、建立、配置和使用Activity,Activity是Android应用中最重要、最常见的应用组件。实际应用中,包含多个Activity,实现不同的Activity向用户呈现不同的操作界面。Android应用的多个Activity组成Activity栈,当前活动的Activity位于栈顶。 Activity的作用 用户与应用程序交互的接口; 作为放置控件的容器。 在Activity中添加的控件,程序中通过findViewById(int id)方法,来获取所添加的控件,不过这些组件都要有一个ID。 接下来详细介绍Activity开发、配置和使用。,1、建立、配置和使用Activity,1.1 建立Activity 建立一个Activity的步骤如下: 建立Activity需要继承Activity基类,根据不同的需要,有时也需要继承Activity的子类。 需要复写onCreate()方法(由应用程序的框架调用)。 每一个Activity必须在AndroidManifest.XML文件中进行配置 为Activity添加必要的控件。 实例7.1 LaucherActivity的使用(P171)。,标签,1、建立、配置和使用Activity,1、建立、配置和使用Activity,上面的程序中用到了两个Activity。 ExpandableListActivityTest:它是ExpandableListActivity的子类,用于显示一个可展开的列表窗口。 PreferenceActivityTest:它是PreferenceActivity的子类,用于显示一个显示设置选项参数并进行保存的窗口。 先看ExpandableListActivityTest,它继承了ExpandableListActivity基类,其使用主要是为该Activity传入一个ExpandableListAdapter对象,ExpandableListActivity将会生成一个显示可展开的列表的窗口。 接下来看一下ExpandableListActivityTest的代码,1、建立、配置和使用Activity,1、建立、配置和使用Activity,如果我们要建立一个Activity专门用于设置选项参数,那么这个类可继承PreferenceActivity。一旦一个Activity继承了PreferenceActivity,那么该类完全不需要再控制Preferences的读写, PreferenceActivity为做好这一切。 使用PreferenceActivity与众不同的一点是,它的界面布局不再使用普通的XxxLayout作为根元素,而是使用PreferenceScreen作为根元素,它表明定义一个参数设置的界面布局。,1、建立、配置和使用Activity,1、建立、配置和使用Activity,1、建立、配置和使用Activity,1、建立、配置和使用Activity,在定义了参数设置界面布局文件之后,接下来在Activity程序中使用该界面布局文件进行参数设置、保存,步骤如下: 让Activity继承PreferenceActivity。 在onCreate(Bundle savedInstanceState)方法中调用addPreferencesFromResource()方法加载指定的界面布局文件。,1、建立、配置和使用Activity,1、建立、配置和使用Activity,1.2 配置Activity Android应用要求所有应用程序组件都必须显示进行配置。 为了在AndroidManifest.xml文件中配置、管理Activity,只要为元素添加子元素即可配置Activity。,1、建立、配置和使用Activity,1.3 启动、关闭Activity 一个Android应用通常都会包括多个Activity,但只有一个Activity会作为程序的入口,该Activity会在Android应用运行时,自动启动并执行。至于应用中的其他的Activity,通常由入口Activity启动。 Activity启动其他Activity有如下两种方法。 startActivity(Intent intent);启动其他的Activity。 startActivityForResult(Intent intent,int requestCode ):以指定请求码(requestCode)启动Activity,而且程序将会等到新启动Activity的结果(通过重写onActivityResult()方法来获取)。,1、建立、配置和使用Activity,Android为关闭Activity准备了如下两个方法。 finish():结束当前Activity finishActivity(int requestCode):结束以startActivityForResult(Intent intent,int requestCode )方法启动的Activity。 例7.2 两个Activity之间的切换(P180)。,1、建立、配置和使用Activity,1、建立、配置和使用Activity,1、建立、配置和使用Activity,1.4 使用Bundle在Activity之间交换数据 当一个Activity启动另一个Activity时,常常会有一些数据要传递过去,在Android中,需要传递的数据放在对象Intent中。 Intent提供了多个重载的方法来携带额外的数据。 putExtras(Bundle data):向Intent中放入需要携带的数据。 方法中的Bundle是数据携带包,提供了多个方法存入数据 putXxx(String key,Xxx data):向Bundle中放入各种类型数据。 putSerializable(String key,Serializable data):向Bundle中放入一个可序列化的对象。 为了取出Bundle数据携带包里的数据,Bundle提供如下方法。 getXxx(String key):从Bundle取出Int、Long等各数据类型数据。 getSerializable(String key,Serializable data):从Bundle取出一个可序列化的对象。,1、建立、配置和使用Activity,例7.3 用第二个Activity处理注册信息(P182)。,1、建立、配置和使用Activity,1、建立、配置和使用Activity,1.5 启动其他Activity并返回结果 Activity提供了一个startActivityForResult(Intent intent,int requestCode )方法来启动其他Activity。该方法用于启动指定的Activity,而且期望获取指定Activity返回的结果。 为了获取被启动的Activity所返回的结果,当前Activity需要重写onActivityResult(int requestCode,int resultCode,Intent intent)。 一个Activity中可能包含多个按钮,并调用startActivityForResult()方法来打开多个不同的Activity处理不同的业务。当这些新Activity关闭时,系统都会调用前面Activity的onActivityResult(int requestCode,int resultCode,Intent intent)方法,利用request Code区分是哪个请求结果触发的,利用resultCode区分返回的数据来自哪个新的Activity。,1、建立、配置和使用Activity,例7.4 用第二个Activity让用户选择信息(P186)。,1、建立、配置和使用Activity,1、建立、配置和使用Activity,1、建立、配置和使用Activity,2、Activity的回调机制,Activity被开发出来,开发者只要在AndroidManifest.xml文件配置该Activity即可,至于该Activity何时被实例化,方法何时被调用,对开者来说是完全透明的。 前面介绍了事件的回调机制, Activity的回调机制也类似,当Activity被部署在Android应用中之后,随着应用的运行, Activity会不断地在不同的状态之间切换,该Activity中特定的方法就会被回调,3、Activity的生命周期,当Activity处于Android应用中运行时,它的活动状态由Android以Activity栈的形式管理。当前活动的Activity位于栈顶随着不同应用的运行,每个Activity都有可能从活动状态转入到非活动状态,也可以从非活动状态转入到活动状态。 Activity大致会经过如下四个状态。 活动状态:当前Activity位于前台,用户可见,可以获得焦点 暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点。 停止状态:该Activity不可见,失去焦点。 销毁状态:该Activity结束,或Activity所在Dalvik进程结束。 Activity生命周期及相关回调方法如下图所示。,3、Activity的生命周期,3、Activity的生命周期,在Activity的生命周期中,如下方法会被系统回调。 onCreate(Bundle savedStasus):创建Activity时被回调。 onStart():启动Activity时被回调。 onRestart():重新启动Activity时被回调。 onResume ():恢复Activity时被回调。 onPause():暂停Activity时被回调。 onStop():停止Activity时被回调。 onDestroy():销毁Activity时被回调。 例7.5 Activity的生命周期(P192)。,3、Activity的生命周期,3、Activity的生命周期,4、小结,本讲详细的介绍了Android四大组件之一:Activ

温馨提示

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

评论

0/150

提交评论