android生命周期深入分析(一)

laoywu07406

laoywu07406

2016-02-19 11:20

今天图老师小编要向大家分享个android生命周期深入分析(一)教程,过程简单易学,相信聪明的你一定能轻松get!
Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情。
例举了 7 个常用的钩子:
protected void onCreate(Bundle savedInstanceState)
protected void onStart()
protected void onResume()
protected void onPause()
protected void onStop()
protected void onRestart()
protected void onDestroy()

简要说明
onCreate(Bundle savedInstanceState):创建activity时调用。设置在该方法中http://www.myexception.cn/,还以Bundle中可以提出用于创建该 Activity 所需的信息。
onStart():activity变为在屏幕上对用户可见时,即获得焦点时,会调用。
onResume():activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)。
onPause():activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的。。
onStop():activity被停止并转为不可见阶段及后续的生命周期事件时,即失去焦点时调用。
onRestart():重新启动activity时调用。该活动仍在栈中,java.io.UnsupportedEncodingException而不是启动新的活动。
onDestroy():activity被完全从系统内存中移除时调用,该方法被调用可能是因为有人直接调用 finish()方法 或者系统决定停止该活动以释放资源。

横竖屏切换
1 切换到横屏
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume

2 切换到竖屏,销毁了两次
onSaveInstanceState
onPause
onStop
onDestroyonCreate
onStart
onRestoreInstanceState
onResume
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume

3 修改AndroidManifest.xml,把该Activity添加 android:configChanges="orientation",切横屏,只销毁一次
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume

4 再切回竖屏,发现不会再打印相同信息,但多打印了一行onConfigChanged
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
onConfigurationChanged

5 更改 android:configChanges="orientation" 改成 android:configChanges="orientation|keyboardHidden",切横屏,就只打印onConfigChanged
onConfigurationChanged

6 切回竖屏
onConfigurationChanged
onConfigurationChanged

总结
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
展开更多 50%)
分享

猜你喜欢

android生命周期深入分析(一)

编程语言 网络编程
android生命周期深入分析(一)

android生命周期深入分析(二)

编程语言 网络编程
android生命周期深入分析(二)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Android 程序应用的生命周期

编程语言 网络编程
Android 程序应用的生命周期

CORBA对象生命周期之生命周期的评估

编程语言 网络编程
CORBA对象生命周期之生命周期的评估

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

android横竖屏切换时候Activity的生命周期

编程语言 网络编程
android横竖屏切换时候Activity的生命周期

深入探索CORBA对象生命周期之慨述

编程语言 网络编程
深入探索CORBA对象生命周期之慨述

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

如何实现在硬盘上引导WinPE

如何实现在硬盘上引导WinPE

Javascript 高级手势使用介绍

Javascript 高级手势使用介绍
下拉加载更多内容 ↓