Android应用之横竖屏切换时生命周期 onsaveinstancestate
2015-12-28 18:22
323 查看
Android设备在横竖屏切换时,会调用OnsavedInstanceState方法,我们来看看其生命周期的调用过程。
写了个简单例子,通过log打印出生命周期的调用过程。不多说,上图大家一看就明白。
下图是正常打开一个Activity的生命周期调用过程。
下面是打开一个Activity然后由竖屏切换到横屏的生命周期调用过程。
下面是打开一个Activity然后由竖屏切换到横屏再切回竖屏的生命周期调用过程。
在书上看到大神说,onsaveInstancestate方法在 onstop之前调用,和onpause没有既定的时序关系,有可能在onpause之前,也可能在onpause之后,但是我测试了几次好像都是在onpause之后,这点还有待验证。
这里再说一个关于生命周期的知识点,最近看书才知道的。
已经打开的Activity A然后再打开另外一个Activity B。两个Activity'的生命周期是怎么执行的呢?
首先执行的是Activity A的onPause()方法,然后执行Activity B的onCreate(),onStart(),onResume(),然后再执行Activity A的onStop()方法。
大家可以打印log看下效果。这个执行顺序也提醒我们不要在onPause()方法中做太耗时的操作,有需要尽量放在onStop中,这样就不会影响新的Activity的顺利打开。
写了个简单例子,通过log打印出生命周期的调用过程。不多说,上图大家一看就明白。
下图是正常打开一个Activity的生命周期调用过程。
下面是打开一个Activity然后由竖屏切换到横屏的生命周期调用过程。
下面是打开一个Activity然后由竖屏切换到横屏再切回竖屏的生命周期调用过程。
在书上看到大神说,onsaveInstancestate方法在 onstop之前调用,和onpause没有既定的时序关系,有可能在onpause之前,也可能在onpause之后,但是我测试了几次好像都是在onpause之后,这点还有待验证。
这里再说一个关于生命周期的知识点,最近看书才知道的。
已经打开的Activity A然后再打开另外一个Activity B。两个Activity'的生命周期是怎么执行的呢?
首先执行的是Activity A的onPause()方法,然后执行Activity B的onCreate(),onStart(),onResume(),然后再执行Activity A的onStop()方法。
大家可以打印log看下效果。这个执行顺序也提醒我们不要在onPause()方法中做太耗时的操作,有需要尽量放在onStop中,这样就不会影响新的Activity的顺利打开。
相关文章推荐
- HTML5 实现Android app样例
- android sqlite 数据库操作
- Android 自定义ViewPager的滑动速度
- Hellocharts-android 设置缩放级别
- android-Ultra-Pull-To-Refresh 源码解析
- Android Studio使用心得 - 简单介绍与环境配置
- Android 自动化测试
- Android(Android5.0)下毛玻璃(磨砂)效果如何实现?
- Android —— NFC详解
- android configChanges的用法以及好处
- android进阶-题目总结(进行中)
- Android中Dialog实现自定义弹出对话框
- Android Butterknife Zelezny
- android sudio 如何获取sha1与md5值
- 【Android开发小记--1】Activity之间传递信息
- android 读取MCC MNC讲解
- Android 外部存储权限分析 .
- Android APN配置
- Android SlidingMenu的使用
- 调用没有在AndroidManifest.xml注册过的Activity,报出的错误提示