activity生命周期完整版
来源:互联网 发布:模板支撑计算软件 编辑:程序博客网 时间:2024/05/16 05:23
activity生命周期的方法和介绍activity正常启动的执行顺序
activity正常启动的执行顺序
activity横竖屏会执行的方法顺序activity四种模式下的执行顺序
activity设置configchanges下的启动顺序
activity两个界面跳转情况下的执行顺序
activity生命周期的方法和介绍:
onCreate
当Activity被第首次加载时执行
onStart
activity变为在屏幕上对用户可见时调用
onResume
activity开始与用户交互时调用
onPause
窗体被交换到后台时执行
onStop
activity被停止并转为不可见阶段及后续的生命周期事件时调用
onRestart
重新启动activity时调用。
onDestroy
activity被完全从系统内存中移除时调用
activity正常启动的执行顺序
activity横竖屏会执行的方法顺序
1、运行Activity,得到如下信息
onCreate-->
onStart-->
onResume-->
2、按crtl+f12切换成横屏时
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
3、再按crtl+f12切换成竖屏时,打印信息如下
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
activity四种模式下的执行顺序
Activity启动模式设置:
<activity android:name=".MainActivity" android:launchMode="standard" />
Activity的四种启动模式:
1. standard
模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。
2. singleTop
如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。
3. singleTask
如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。
4. singleInstance
在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。
activity设置configchanges下的启动顺序
1、修改AndroidManifest.xml,把该Activity添加 android:configChanges="orientation"
运行结果:
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
2、按crtl+f12切换成竖屏时,发现不会再打印相同信息,但多打印了一行onConfigChanged
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onConfigurationChanged-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onConfigurationChanged-->
3、把android:configChanges="orientation" 改成
android:configChanges="orientation|screenSize|keyboardHidden"(sdk>13时需加上screenSize),切换成竖屏时,就只打印onConfigChanged
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="keyboardHidden"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
4、设置Activity的android:configChanges="orientation|screenSize|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
activity两个界面跳转情况下的执行顺序
从一个Activity1通过Intent切换到Activity2:
Activity1------->onPause()
Activity2------->onCreate()
Activity2------->onStart()
Activity2------->onResume()
Activity1------->onStop()
按Back键返回:
Activity2------->onPause()
Activity1------->onRestart()
Activity1------->onStart()
Activity1------->onResume()
Activity2------->onStop()
Activity2------->onDestroy()
0 0
- activity生命周期完整版
- [完整版]Activity生命周期、Fragment生命周期
- Fragment 生命周期完整版
- Activity 生命周期
- Activity生命周期
- Activity 生命周期
- Activity 生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- activity生命周期
- Activity 生命周期
- Activity生命周期
- Activity 生命周期
- activity生命周期
- Activity 生命周期
- [leetcode] 131. Palindrome Partitioning 解题报告
- 计步器算法简述和模块使用
- 上传Apk至测试服务器
- 框架和类库的区别
- 发送手机物理标识请求
- activity生命周期完整版
- 泛型的内部原理:类型擦除以及类型擦除带来的问题
- 欢迎使用CSDN-markdown编辑器
- Java菜鸟入门(20) Producer Consumer经典代码
- Duilib库中的点九图使用(解决控件贴图拉伸圆角变形问题等)
- 手把手教你用NuGet
- 获取脚本所在路径的方法
- c++实现简单的输入输出
- mysqladmin: connect to server at 'localhost' failed初始化密码时的错误处理