网站大量收购独家精品文档,联系QQ:2885784924

轻松学Android开发之深入解析Activity过程稿.pptxVIP

轻松学Android开发之深入解析Activity过程稿.pptx

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 深入解析Activity;首先,我们从只有一个用户界面的Android程序,开始Activity的学习。;在Android应用程序里,一个Activity就是一个用户界面。用户与程序的交互就是通过该类来实现的。 ;每一个活动(Activity)都处于某一个状态。对于开发者来说,是无法控制其应用程序处于某一个状态的,这些均由系统来完成。但是当一个活动的状态发生改变的时候,开发者可以通过调用onXXX()的方法,获取到相关的通知信息。 第一次启动MainActivity,依次执行以下方法:onCreate()? MainActivity created?onStart()?MainActivity started?onResume()?MainActivity actived,进入活动状态。 ;结束MainActivity,依次执行以下方法:onPause ()?MainActivity paused?onStop ()?MainActivity stoped? onDestory ()?MainActivity killed。 首先,Activity由活动状态转为暂停状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见。但它已经失去了焦点,故不可与用户交互。在极特殊的情况下,Android将会杀死一个暂停的Activity,来为活动的Activity提供充足的资源; 接着该Activity被停止,变为完全隐藏,失去焦点,并且不可见。但是,系统将仍然在内存中保存它所有的状态和信息; 最后该Activity被杀死,转为销毁状态。Activity结束,退出当前应用程序。 ;一个应用程序通常有不同的界面,由此可知一个Android应用程序可以由多个Activity组成。接下来我们学习,在包含两个Activity的应用程序中,两界面之间如何实现跳转。 ;主Activity是程序启动的入口。应用程序成功启动之后,呈献给用户的第一个界面,即为该程序的主Activity。 第一次启动ActivityLifeCylceActivity,依次执行以下方法:onCreate()?onStart()?onResume(),ActivityLifeCylceActivity位于栈顶,处于活动状态。 ;新建程序中的第二个Activity界面,以便实现界面的跳转。 ;在主Activity中,声明Intent(详细介绍见6.4)对象,调用setClass()方法启动目标组件。然后,触发主Activity的按钮单击监听事件,调用startActivity()方法,启动另一个Activity。 启动第二个Activity时,第一个Activity onPause()转为暂停状态,因为第二个Activity需要在前台运行。这时候需要将活动的状态持久化,比如正在编辑的数据库记录等; 第二个Activity第一次启动,依次执行 onCreate()?onStart()?onResume()方法。Two位于栈顶,处于活动状态; 第一个Activity 不再需要展示给用户,执行onStop()方法,ActivityLifeCylceActivity被压入栈底,转为停止状态。 ;注:如果内存紧张,系统会直接结束这个活动,而不会触发 onStop() 方法。所以保存状态信息是应该在onPause时做,而不是onStop时做。活动如果没有在前台运行,都将被停止,或者Linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。在一些情况下,onPause()方法或许是活动触发的最后的方法,因此开发者需要在这个时候保存需要保存的信息。 ;同理,跳转回主Activity,需要在第二个Activity中,声明Intent对象。然后指定主Activity为目标组件,触发按钮单击监听事件,调用startActivity()方法实现跳转。 当返回到第一个Activity时,第二个Activity onPause() 转为暂停状态; 第一个Activity onRestart(),被重新启动,再次展现给用户,然后执行onStart()、onResume()方法。ActivityLifeCylceActivity再次位于栈顶,由停止状态转为活动状态,; 第二个Activity执行 onStop()方法,被压入栈底,转为停止状态。 ;当用户按下手机上的BACK键时,结果和调用 Activity.finish()方法一样:告诉 Activity Manager,该 Activity 实例完成了相应的工作,可以被“回收”。 第二个Activity onRestart(),被重新启动,再次展现给用

文档评论(0)

phl805 + 关注
实名认证
文档贡献者

建筑从业资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年05月12日上传了建筑从业资格证

1亿VIP精品文档

相关文档