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不会创建在新的任务栈中.。始终在整 个系统中 会被初始化一次。应用场景: 在整个系统中, 只需要初始化一次的页面。
一、生命周期:
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不会创建在新的任务栈中.。始终在整 个系统中 会被初始化一次。应用场景: 在整个系统中, 只需要初始化一次的页面。
相关文章推荐
- Android笔记:Activity的生命周期以及启动模式
- 【Activity】Activity生命周期及启动模式
- Activity入门--“生命周期”,启动模式,Intent跳转Flag方式
- Activity生命周期和启动模式
- Android-Activity的四状态、七生命周期、和四启动模式
- Activity生命周期和启动模式
- Activity生命周期和启动模式整理
- [基础] 1. Activity的生命周期和启动模式
- 七.Android的Activity生命周期和启动模式
- Activity的生命周期和启动模式详解
- Activity生命周期及启动模式深入理解
- Activity生命周期和启动模式
- Activity的生命周期和启动模式
- Activity的生命周期和启动模式——IntentFilter的匹配规则
- 深入理解Activity——生命周期、启动模式、taskAffinity
- Activity的生命周期和启动模式
- 回顾基础知识--第一章:Activity的生命周期和启动模式
- Activity的生命周期和启动模式
- Android - 界面跳转,显式/隐式意图,四大组件之Activity,Activity生命周期,横竖屏,任务栈启动模式
- 关于activity的启动模式问题,生命周期和TabActivity是如何做到视图切换的