- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Activity生命周期与启动模式.docx
Activity之生命周期和启动模式
activity类处于android.app包中,继承体系如下:
HYPERLINK /reference/java/lang/Object.html java.lang.Object???? HYPERLINK /reference/android/content/Context.html android.content.Context????? HYPERLINK /reference/android/content/ContextWrapper.html android.content.ContextWrapper?????? HYPERLINK /reference/android/view/ContextThemeWrapper.html android.view.ContextThemeWrapper???????android.app.Activity在Android中,Activity的生命周期一直是比较重要的知识点,首先上官方图:
七个周期函数,可以添加log观察周期函数的输出验证生命周期函数的调用时间:
protected void onCreate(Bundle icicle);
protected void onRestart();
protected void onStart();
protected void onResume();//常用来刷新显示数据
protected void onPause();//常用来保存数据,如contentprider,sharedprefer
protected void onStop();
protected void onDestroy();
生命周期总结:
1,在 android 中,Activity 拥有四种基本状态:
Active/Runing一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。
Paused?当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
Stoped?当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于?Stoped状态。
Killed?Activity 被系统杀死回收或者没有被启动时处于?Killed状态。
2,Activity栈(下面启动模式的基础):
Android 是通过一种 Activity 栈的方式来管理 Activity 的,一个 Activity 的实例的状态决定它在栈中的位置。处于前台的 Activity 总是在栈的顶端,当前台的 Activity 因为异常或其它原因被销毁时,处于栈第二层的 Activity 将被激活,上浮到栈顶。当新的 Activity 启动入栈时,原 Activity 会被压入到栈的第二层。一个 Activity 在栈中的位置变化反映了它在不同状态间的转换。
HYPERLINK /allenzheng/archive/2013/04/28/3050065.html Android之Activity的四种启动模式
当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中。Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=设置启动模式。如下1,2,3都设FirstActivity为当前模式,4设SecondActivity。
?
1.?Standared模式(默认)
我们平时直接创建的Activity都是这种模式的Activity,这种模式的Activity的特点是:只要你创建了Activity实例,一旦激活该Activity,则会向任务栈中加入新创建的实例,退出Activity则会在任务栈中销毁该实例。
2.?SingleTop模式
这种模式会考虑当前要激活的Activity实例在任务栈中是否正处于栈顶,如果处于栈顶则无需重新创建新的实例,会重用已存在的实例调用onNewIntent,否则会在任务栈中创建新的实例。
3.?SingleTask模式
如果任务栈中存在该模式的Activity实例,则把栈中该实例以上的Activity实例全部移除,调用该实例的onNewIntent方法重用该Activity,使该实例处於栈顶位置,否则就重新创建一个新的Activity实例。和下面的singleinstance一样,
文档评论(0)