Activity生命周期和启动模式

Activity生命周期和启动模式

ID:40522691

大小:167.09 KB

页数:5页

时间:2019-08-04

Activity生命周期和启动模式_第1页
Activity生命周期和启动模式_第2页
Activity生命周期和启动模式_第3页
Activity生命周期和启动模式_第4页
Activity生命周期和启动模式_第5页
资源描述:

《Activity生命周期和启动模式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Activity之生命周期和启动模式activity类处于android.app包中,继承体系如下:java.lang.Object   ↳android.content.Context    ↳android.content.ContextWrapper     ↳android.view.ContextThemeWrapper      ↳android.app.Activity在Android中,Activity的生命周期一直是比较重要的知识点,首先上官方图:七个周期函数,可以添加log观察周期函数的输出验证生命周期函数的调

2、用时间:protectedvoidonCreate(Bundleicicle);protectedvoidonRestart();protectedvoidonStart();protectedvoidonResume();//常用来刷新显示数据protectedvoidonPause();//常用来保存数据,如contentprider,sharedpreferprotectedvoidonStop();protectedvoidonDestroy();生命周期总结:1,在android中,Activity拥有四种基本状态:1.

3、Active/Runing一个新Activity启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。2.Paused 当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。3.Stoped 当Activity被另外一个Activity覆盖、失去焦点并不可见时处于 Stoped状态。4.Killed Activity被系统杀死回收或者没有被启动时处于 Killed状态

4、。2,Activity栈(下面启动模式的基础):Android是通过一种Activity栈的方式来管理Activity的,一个Activity的实例的状态决定它在栈中的位置。处于前台的Activity总是在栈的顶端,当前台的Activity因为异常或其它原因被销毁时,处于栈第二层的Activity将被激活,上浮到栈顶。当新的Activity启动入栈时,原Activity会被压入到栈的第二层。一个Activity在栈中的位置变化反映了它在不同状态间的转换。Android之Activity的四种启动模式当应用运行起来后就会开启一条线程

5、,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中。Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=""设置启动模式。如下1,2,3都设FirstActivity为当前模式,4设SecondActivity。 1. Standared模式(默认)我们平时直接创建的Activity都是这种模式的Activity,这种模式的Activity的特点是:只要你创建了Activity实例,一旦激活该Activity,则会向任

6、务栈中加入新创建的实例,退出Activity则会在任务栈中销毁该实例。2. SingleTop模式这种模式会考虑当前要激活的Activity实例在任务栈中是否正处于栈顶,如果处于栈顶则无需重新创建新的实例,会重用已存在的实例调用onNewIntent,否则会在任务栈中创建新的实例。3. SingleTask模式如果任务栈中存在该模式的Activity实例,则把栈中该实例以上的Activity实例全部移除,调用该实例的onNewIntent方法重用该Activity,使该实例处於栈顶位置,否则就重新创建一个新的Activity实例。

7、和下面的singleinstance一样,通常在laucher中使用,避免别的程序使用时产生孤岛,也在开销较大的activity中使用节约内存开销。4. SingleInstance模式这种启动模式比较特殊,因为它会启用一个新的栈结构,将Acitvity放置于这个新的栈结构中,并保证不再有其他Activity实例进入。我们修改FirstActivity的launchMode="standard",SecondActivity的launchMode="singleInstance"我们看到从FirstActivity跳转到Secon

8、dActivity时,重新启用了一个新的栈结构,来放置SecondActivity实例,然后按下后退键,再次回到原始栈结构;图中下半部分显示的在SecondActivity中再次跳转到FirstActivity,这个时候系统会在原始栈结构中生成一个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。