android面试题集activity生命周期详解_第1页
android面试题集activity生命周期详解_第2页
android面试题集activity生命周期详解_第3页
android面试题集activity生命周期详解_第4页
android面试题集activity生命周期详解_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、学习并掌握 IZOOZ_ 生命周期,对从事 TJXUOJ 开发(或者打算日后从事这方面的开的。本文将用图解和实例的方式,向大家详细讲解 IZOOZ_发工作)的朋友来讲,是生命周期的有关知识。IZOOZ_ 有三个状态: 当它在屏幕前台时(位于当前任务堆栈的顶部),它是激活或运行状态。它就是响应用户操作的 IZOOZ_。 当它上面有另外一个 IZOOZ_,使它失去了焦点但仍然对用户可见时(如图),它处于暂停状态。在它之上的 IZOOZ_ 没有完屏幕,或者是透明的,被暂停的 IZOOZ_ 仍然对用户可见,并且是存活状态(它保留着所有的状态和成员信息并保持和窗口管理器的连接)。如果系统处于内存时会杀死

2、这个 IZOOZ_。3.当它完全被另一个 Activity 覆盖时则处于停止状态。它仍然保留所有的状态和成员信息。然而对用户是不可见的,所以它的窗口将被隐藏,如果其它地方需要内存,则系统经常会杀死这个Activity。当 Activity 从一种状态转变到另一种状态时,会调用以下保护方法来通知这种变化:void onCreate(Bundle savedInstane)void onStart()UOJ UT8KYZGXZ UOJ UT8KYSK UOJ UT6GYK UOJ UT9ZUV UOJ UT*KYZXU_ 这七个方法定义了 IZOOZ_ 的完整生命周期。实现这些方法可以帮助监视其中

3、的三个嵌套生命周期循环:IZOOZ_ 的完整生命周期自第一次调用 UT)XKGZK 开始,直至调用 UT*KYZXU_ 为止。IZOOZ_ 在 UT)XKGZK 中设置所有“全局”状态以完成初始化,而在 UT*KYZXU_ 中所有系统资源。例如,如果 IZOOZ_ 有一个线程在运行从网络数据,它会在 UT)XKGZK 创建线程,而在 UT*KYZXU_ 销毁线程。IZOOZ_ 的可视生命周期自 UT9ZGXZ 调用开始直到相应的 UT9ZUV 调用结束。在此期间,用户可以在屏幕上看到 IZOOZ_,尽管它也许并不是位于前台或者也不与用户进行交互。在这两个方法之间,可以保留用来向用户显示这个IZ

4、OOZ_ 所需的资源。例如,当用户不显示的内容时,可以在 UT9ZGXZ 中一个 (XUGJIGYZ8KIKOKX 来再看见会影响 ;/ 的变化,而在 UT9ZUV 中来注消。UT9ZGXZ 和 UT9ZUV 方法可以随着应用程序是否为用户可见而被多次调用。IZOOZ_ 的前台生命周期自 UT8KYSK 调用起,至相应的 UT6GYK 调用为止。在此期间,IZOOZ_ 位于前台最上面并与用户进行交互。IZOOZ_ 会经常在暂停和恢复之间进行状态转换例如当设备转入休眠状态或者有新的IZOOZ_ 启动时,将调用 UT6GYK 方法。当 IZOOZ_ 获得结果或者接收到新的KTZ 时会调用 UT8K

5、YSK 方法。说了一大堆的理论,下面一起动手来开发一个小实例,帮助大家快速理解。不妨试着动手去敲代码,然后自己控制台上的日志。先贴出 IZOOZ_ 部分的代码:最先是一个 3GOTIZOOZ_,这个也是启动时默认打开的。VGIQGMK IT ROLK!OSVUXZ GTJXUOJ GVV IZOOZ_!OSVUXZ GTJXUOJ IUTZKTZ KTZ!OSVUXZ GTJXUOJ UY (TJRK!OSVUXZ GTJXUOJ ZOR 2UM!OSVUXZ GTJXUOJ OK OK!OSVUXZ GTJXUOJ OJMKZ (ZZUT!VHROI IRGYY 3GOTIZOOZ_ KZK

6、TJOOZ_ aVXOGZK YOI LOTGR 9ZXOTM :- # 3GOTIZOOZ_ !&5KXXOJKVHROI UOJ UT)XKGZK (TJRK YGKJ/TYZGTK aYVKX UT)XKGZK YGKJ/TYZGTK !YKZ)UTZKTZOK 8 RG_UZ SGOT !2UM O :- UT)XKGZK !(ZZUT HZZUT # (ZZUT ZNOY LOTJOK(_/J 8 OJ HZZUT !HZZUT YKZ5T)ROIQ2OYZKTKX TK OK 5T)ROIQ2OYZKTKX a&5KXXOJKVHROI UOJ UT)ROIQ OK aKTZKTZ

7、 # TKKTZ 3GOTIZOOZ_ ZNOY 5ZNKXIZOOZ_ IRGYY !YZGXZIZOOZ_ KTZ !cc !(ZZUT ZNXKKHZZUT # (ZZUT ZNOY LOTJOK(_/J 8 OJ ZNXKKHZZUT !ZNXKKHZZUT YKZ5T)ROIQ2OYZKTKX TK OK 5T)ROIQ2OYZKTKX a&5KXXOJKVHROI UOJ UT)ROIQ OK aKTZKTZ # TKKTZ 3GOTIZOOZ_ ZNOY :NXKKIZOOZ_ IRGYY !YZGXZIZOOZ_ KTZ !cc !cOverrideprotected void

8、 onDestroy() Log.i(TAG, onDestroy();super.onDestroy();Overrideprotected void onPause() Log.i(TAG, onPause();super.onPause();Overrideprotected void onRestart() Log.i(TAG, onRestart();super.onRestart();Overrideprotected void onResume() Log.i(TAG, onResume();YVKX UT8KYSK !c&5KXXOJKVXUZKIZKJ UOJ UT9ZGXZ

9、 a2UM O :- UT9ZGXZ !YVKX UT9ZGXZ !c&5KXXOJKVXUZKIZKJ UOJ UT9ZUV a2UM O :- UT9ZUV !YVKX UT9ZUV !cc3GOTIZOOZ_ 所匹配的 SR 布局文件:%SR KX# KTIUJOTM# ZL %$2OTKGX2G_UZ SRTY GTJXUOJ# NZZV Y GVQ XKY GTJXUOJ GTJXUOJ UXOKTOUT# KXZOIGR GTJXUOJ RG_UZEOJZN# LORREVGXKTZ GTJXUOJ RG_UZENKOMNZ# LORREVGXKTZ $:KZOKGTJXUOJ R

10、G_UZEOJZN# LORREVGXKTZ GTJXUOJ RG_UZENKOMNZ# XGVEIUTZKTZ GTJXUOJ ZKZ# &YZXOTM U $(ZZUTGTJXUOJ RG_UZEOJZN# XGVEIUTZKTZ GTJXUOJ RG_UZENKOMNZ# XGVEIUTZKTZ GTJXUOJ ZKZ# 打开 5ZNKXIZOOZ_ GTJXUOJ OJ# & OJ HZZUT $(ZZUTGTJXUOJ RG_UZEOJZN# XGVEIUTZKTZ GTJXUOJ RG_UZENKOMNZ# XGVEIUTZKTZ GTJXUOJ ZKZ# 打开 :NXKKIZOO

11、Z_ GTJXUOJ OJ# & OJ ZNXKKHZZUT $ 2OTKGX2G_UZ$下面将是一个新的 IZOOZ_,为了验证“UTYZUV”方法,要用这个 5ZNKXIZOOZ_ 将前面的 3GOTIZOOZ_ 覆盖掉。VGIQGMK IT ROLK!OSVUXZ GTJXUOJ GVV IZOOZ_!OSVUXZ GTJXUOJ UY (TJRK!VHROI IRGYY 5ZNKXIZOOZ_ KZKTJOOZ_ a&5KXXOJKVXUZKIZKJ UOJ UT)XKGZK (TJRK YGKJ/TYZGTK a :5*5 ZU MKTKXGZKJ SKZNUJ YZHYVKX UT

12、)XKGZK YGKJ/TYZGTK !YKZ)UTZKTZOK 8 RG_UZ UZNKX !cc%SR KX# KTIUJOTM# ZL %$2OTKGX2G_UZSRTY GTJXUOJ# NZZV Y GVQ XKY GTJXUOJ GTJXUOJ UXOKTOUT# KXZOIGR GTJXUOJ RG_UZEOJZN# LORREVGXKTZ GTJXUOJ RG_UZENKOMNZ# LORREVGXKTZ $:KZOKGTJXUOJ RG_UZEOJZN# LORREVGXKTZ GTJXUOJ RG_UZENKOMNZ# XGVEIUTZKTZ GTJXUOJ ZKZ# 这是

13、 5ZNKXIZOOZ_ $ 2OTKGX2G_UZ$还有一个 IZOOZ_,是用于测试 UTVGYK 方法的。使用半透明或者提示框的形式,覆盖掉前面的 3GOTIZOOZ_VGIQGMK IT ROLK!OSVUXZ GTJXUOJ GVV IZOOZ_!OSVUXZ GTJXUOJ UY (TJRK!VHROI IRGYY :NXKKIZOOZ_ KZKTJOOZ_ a&5KXXOJKVXUZKIZKJ UOJ UT)XKGZK (TJRK YGKJ/TYZGTK a :5*5 ZU MKTKXGZKJ SKZNUJ YZHYVKX UT)XKGZK YGKJ/TYZGTK !YKZ)UT

14、ZKTZOK 8 RG_UZ ZNXKK !cc%SR KX# KTIUJOTM# ZL %$2OTKGX2G_UZSRTY GTJXUOJ# NZZV Y GVQ XKY GTJXUOJ GTJXUOJ RG_UZEOJZN# XGVEIUTZKTZ GTJXUOJ RG_UZENKOMNZ# XGVEIUTZKTZ $:KZOKGTJXUOJ RG_UZEOJZN# LORREVGXKTZ GTJXUOJ RG_UZENKOMNZ# XGVEIUTZKTZ GTJXUOJ ZKZ# 第三个 IZOOZ_ $ 2OTKGX2G_UZ$文件,注意使用 GTJXUOJ ZNKSK# >JXU

15、OJ YZ_RK :NKSK *OGRUM 下面是项目来设置 GIZOOZ_ 的样式风格 弹出框%SR KX# KTIUJOTM# ZL %$SGTOLKYZ SRTY GTJXUOJ# NZZV Y GVQ XKY GTJXUOJ VGIQGMK# IT ROLK GTJXUOJ KX)UJK# GTJXUOJ KX4GSK# $GVVROIGZOUTGTJXUOJ OIUT# &JXGGHRK OIUT GTJXUOJ RGHKR# &YZXOTM GVVETGSK $GIZOOZ_ GTJXUOJ TGSK# 3GOTIZOOZ_ GTJXUOJ RGHKR# &YZXOTM GVVET

16、GSK $KTZ LORZKX$GIZOUT GTJXUOJ TGSK# GTJXUOJ KTZ GIZOUT 3/4 $IGZKMUX_ GTJXUOJ TGSK# GTJXUOJ KTZ IGZKMUX_ 2;4).+8 $ KTZ LORZKX$ GIZOOZ_$GIZOOZ_GTJXUOJ TGSK# 5ZNKXIZOOZ_ GTJXUOJ ZNKSK# >JXUOJ YZ_RK :NKSK *OGRUM $GIZOOZ_ GTJXUOJ TGSK# :NXKKIZOOZ_ $ GVVROIGZOUT$YKY YJQ GTJXUOJ SOT9JQKX# $ SGTOLKYZ$在模拟器中部署该应用,观察控制台中的日志显示,看这些生命周期的执行顺序,拭目以待吧。 ”的这种情况,我暂时就不去模拟操作了。参照那张,“当系统内存补充:IZOOZ_ 的 UT9GK/TYZGTK 和 UT8KYZUXK/TYZGTK 并不是生命周期方法,它们不同于 UT)XKGZK 、UT6GYK 等生命周期方法,它们并不一定会被触发。当应用遇、用户直接按 .USK 键)由系统销毁一个 IZOOZ_ 时,到意外情况(如:内存UT9GK/TYZGTK 才会被调用。但是当用户主动去销毁一个 IZ

温馨提示

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

评论

0/150

提交评论