Android程序开发应用实例ppt课件.ppt_第1页
Android程序开发应用实例ppt课件.ppt_第2页
Android程序开发应用实例ppt课件.ppt_第3页
Android程序开发应用实例ppt课件.ppt_第4页
Android程序开发应用实例ppt课件.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

Android程序开发应用实例第五讲AndoridActivity组件 1 2 内容概要 2 3 本节内容 什么是Android Activity生命周期 3 Activity生命周期特征 一个完整Activity的生命周期包括激活状态 运行状态 暂停状态 停止状态和终止状态 这些状态的特征为 激活状态 Activity的初始状态 所有的Activity必须经历这个状态运行状态 这时的Activity运行在屏幕的前台暂停状态 这时Activity失去了焦点但是仍然对用户可见 停止状态 这时Activity对用户不可见 所以其窗口会被其他Activity覆盖 终止状态 这时Activity将会被系统清理出内存 4 Activity生命周期状态转换 Activity的生命周期状态转换如下图所示 5 Activity生命周期划分 Activity的生命周期可以根据不同的标准分为 完整生命周期onCreate onDestroy 可见生命周期onStart onStop 前台生命周期onResume onPause 6 7 本节内容 什么是Android Activity栈管理机制 7 Android管理Activity 大多数的应用程序根据功能的需要都是由多个屏幕显示组成 因此大部分的Android应用中也就必须包含多个Activity类 Android系统使用栈来管理Activity 栈是一种先进后出的数据结构 处于顶端的元素总是被先处理 当一个新的Activity启动的时候 它首先会被放置在Activity栈顶部并成为运行状态的Activity只有当这个新的Activity退出以后 之前Activity才能重新回到前台界面 8 Activity栈管理过程 续 当前有Activity A Activity B和Activity C三个Activity Activity A是当前响应用户的操作的Activity 因此处于运行状态的Activity A被放置于栈顶 而Activity B和Activity C处于暂停状态 9 Activity栈管理过程 续 当Activity A对应的窗口被关闭时 Activity B由暂停状态转成运行状态 这时处于运行状态的Activity B被置于栈顶 10 Activity栈管理过程 当接着当Activity B对应的窗口被关闭时 Activity C由暂停状态转成运行状态 这时处于运行状态的Activity C被置于栈顶 11 12 本节内容 什么是Android 解析Activity的实现 12 Activity类中的方法 android app Activity类提供的方法protectedvoidonCreate Bundleicicle protectedvoidonStart protectedvoidonRestart protectedvoidonResume protectedvoidonFreeze BundleoutIcicle protectedvoidonPause protectedvoidonStop protectedvoidonDestroy 13 创建Activity 程序开发人员可以重写android app Activity类的方法从而使自定义的Activity在状态改变时执行用户所期望的操作 下面创建一个名称为HelloActivity的单Activity的Android应用 14 创建Activity的缺省代码 项目创建完成后 该类中的缺省代码如下所示 publicclassMainActivityextendsActivity OverridepublicvoidonCreate BundlesavedInstanceState super onCreate savedInstanceState setContentView R layout activity main OverridepublicbooleanonCreateOptionsMenu Menumenu getMenuInflater inflate R menu activity main menu returntrue 15 启动另外一个Activity 一个Activity可以启动另外一个Activity Activity之间是通过Intent来传递消息的 举个例子说 假设你想让用户看到Internet上的某个图片 当前有一个Activity具有打开Internet上的某个图片的功能 那么 宿主Activity 只需将请求信息放到一个Intent对象里面 并把它传递给startActivity 或startActivityForResult 然后浏览器就会显示指定link的图片 而当用户按下BACK键的时候 宿主Activity又会再一次的显示在屏幕上 16 启动Activity方式 一个Activity可以启动另外一个Activity 在这里启动的Activity被称为 宿主Activity 被启动的Activity被称为 随从Activity 有三种方式来启动另外一个Activity 启动同一个Application的Activity启动不同Application的Activity启动不同apk下的Activity 17 启动不同的Application下的Activity 实例5 1启动不同Application的Activity 18 启动不同APK下的Activity 这种方式 启动不同APK下的Activity 一般用来启动Android系统提供的Activity 实例5 2启动一个Android系统提供的 浏览网页 ActivitypublicclassMainActivityextendsActivity publicvoidonCreate BundlesavedInstanceState super onCreate savedInstanceState setContentView R layout activity main Uriuri Uri parse Intentintent newIntent Intent ACTION VIEW uri startActivity intent 19 Activity启动模式 Android支持standard singleTop singleTask和singleInstance四种启动模式 可以通过AndroidManifest xml文件中的元素的launchMode属性来配置Activity的启动模式 例如下面的语句指定 ActivityMain 这个Activity的启动模式为singleTask 20 设置Activity许可 同API一样 Android系统开放了许多的底层应用 如ACTION CALL 供用户调用 Android系统会在运行时检查该用户程序是否有权限调用该底层应用 这时需要设置Activity许可才能运行相应的应用 需要通过清单文件设置Activity的许可 否则程序运行出现错误 例如 21 22 本节内容 什么是Android Activity的消息传递 22 Activity间的消息传递 Android使用Intent 意图 在不同的Activity之间传递消息 Intent对象描述了应用中一次操作的动作 数据和附加数据 系统通过该对象的描述调用对应的应用 Intent提供了多个Activity之间进行交互的方式 应用程序可通过startActivity方法指定相应的Intent对象来启动另外一个Activity 23 Bundle 如果要传递自定义的数据时例如将当前Activity的运行状态传递给下一个Activity 可使用Bundle来协助完成 Bundle对象可被理解成一个哈希表 该映射表建立了关键字 标识 与其值 传递的数据 的映射关系通过Bundle类的putXXX Key Value 方法将数据封装到Bundle对象中 如putString Stringkey Stringvalue 通过Bundle的getXXX Stringkey 方法取得关键字对应的数据 24 使用Intent和Bundle在Activity间传递数据 宿主Activity 端的流程1 首先创建一个Intent和Bundle对象 其中Bundle用于存储传递的数据 2 然后使用Bundle的put方法输入要传递的数据 3 将要传递的数据压入Intent中 4 启动 随从Activity 随从Activity 端的流程1 接收 宿主Activity 的Intent 2 传递获得传入的Bundle对象 3 使用Bundle的get方法获取要传递的数据 25 26 本节内容 什么是Android Activity应用 26 Activity应用 续 实例5 4 实现Activities间的消息传递 该实例包含了两个Activity MainActivityMainActivity通过Bundle绑定单选按钮值将当前被选中的单选按钮值传送给SupplActivity myintent putExtras mybundle 将数据封装到Intent对象中 通过该Intent对象将数据传送给相应的Activity MainActivity this startActivity myintent 27 Activity应用 续 SMainActivity启动SupplActivity 并传递给SupplActivity包含RadioButton值的Intent对象 接着SupplActivity通过getIntent方法获取从MainActivity传过来Intentmyintent this getIntent 获取Activity传递的IntentBundlemybundle myintent getExtras 获取Intent的Bundle对象 该对象记录了传送的数据值 28 Activity应用 该程序 选中 Chinese 单选按钮 然后点击 StartSupplActivity 按钮 左图所示 之后 会看到SupplActivity被启动 SupplActivity解析出MainActivity传递过来的值为 Ch

温馨提示

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

评论

0/150

提交评论