您的位置:首页 > 其它

Activity--生命周期、启动模式

2018-03-29 11:43 281 查看
Activity相关知识:
一、生命周期:
 1. 第一次启动Activity:onCreat( )-->onStart( )-->onResume( );
 2. 息屏状态或者被其他Activity覆盖:onPause( )-->onStop( );
 3. Activity重新回到前台:onRestart( )-->onStart( )-->onResume( );
 4 .跳转到其他Activity或者按Home键进入后台:onPause( )-->onStop( );
 5. 从其他Activity再退回至此Activity:-->onRestart( )-->onStart( )-->onResume( );
 6. 退出此Activity:-->onPause( )-->onStop( )-->onDestory( );
 7. 从A跳转到B:A : onPause( )-->B :onCreat( )-->onStart( )-->onResume( )-->A : onPause( );
 8. 从B返回A : B :onPause( )-->A : onRestart( )-->onStart( )-->onResume( )-->B : onStop( )-->onDestory( );
二、切换屏幕时的生命周期:

 在AndroidManifest.xml文件中对指定的Activity设置 

 android:screenOrientation=”portrait”是限制此页面竖屏显示;
 android:screenOrientation=”landscape”是限制此页面横屏显示;

 1. 默认情况下切换屏幕时Activity会销毁重建,其生命周期为
 onPause( )-->onStop( )-->onDestory( )-->onCreate( )-->onStart( )-->onResume( );
 2. 配置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
 3.配置Activity的android:configChanges=”orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行  onConfigurationChanged方法(注意当配置screenOrientation属性后,此属性无效)。
三、启动模式:
 1. standard :标准模式(activity默认的),每次调用startActivity, 都会把activity给创建.
 2. singleTop:单一顶部模式,每次调用startActivity,需要判断当前的activity是否已经被创建过并且查看任务栈的顶部是否是当前  的 activity,如果是,调用onNewIntent方法, 如果不是, 就创建一个新的activity实例。应用场景: 非法程序员, 写的流氓程序, 一直在  弹出某个页面。
 3. singleTask:单一任务栈模式,如果任务栈中已经存在当前的activity,再去调用startActivity,会调用当前任务栈的onNewIntent  方法,同时 , 会把所有以上的activity都给清除出栈。应用场景:如果一个界面显示的资源非常大, 只需要初始化一次实例。
 4. singleInstance:单一实例模式:activity会在一个新的任务栈中实例化, 并且其他的activity不会创建在新的任务栈中.。始终在整  个系统中 会被初始化一次。应用场景: 在整个系统中, 只需要初始化一次的页面。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: