前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android7.0 分屏下 Activity 与 Fragment 生命周期(一)

Android7.0 分屏下 Activity 与 Fragment 生命周期(一)

作者头像
阿策小和尚
发布2019-08-12 16:11:50
6610
发布2019-08-12 16:11:50
举报
文章被收录于专栏:阿策小和尚阿策小和尚

和尚前段时间整理了一篇关于我们真的了解 Activity 与 Fragment 的生命周期吗?的小博文,整理了基础版的关于 Activity 与 Fragment 的生命周期。 后来又一次被一个大大神问到在 Android7.0 分屏情况下的生命周期时,突然蒙圈了,因此和尚我准备分几个小博文整理一下 Android7.0 分屏下各生命周期的执行顺序,Demo 超级简单,只是为了测试生命周期的执行顺序。 和尚我今天整理一下单个 Activity 在 Android7.0 分屏下各生命周期的执行顺序。


和尚我的测试情况如下:

  1. 初始化 Activity 时的生命周期都是一致的:onCreate -> onStart -> onResume;
  1. 点击手机的【任务键】,若屏幕中显示如图情况下代表手机系统支持程序的分屏,此时的生命周期为:onPause -> onStop;
  1. 此时点击分屏按钮,程序默认占据整个手机屏幕的一半,此时执行的生命周期为:onDestroy -> onCreate -> onStart -> onResume -> onPause;
  1. 首次分屏的情况下,当前 Activity 未获取焦点,若此时点击 Activity,此时执行的生命周期为:onResume;若此时未点击 Activity 获取焦点滑动分屏分割线调整 Activity 高度时,优先执行 onResume;
  1. 分屏默认占据整个手机屏幕的一半,若调整分割线向上,此时 Activity 占据不到手机屏幕的一半,发现并没有执行生命周期;若调整分割线向下,此时 Activity 占据超过手机屏幕的一半,或直接占据整个屏幕时,此时执行生命周期顺序为:onPause -> onStop -> onDestroy -> onCreate -> onStart -> onResume;
  1. 分屏占据手机屏幕的一半滑动到上半部分不到屏幕一半由不到屏幕到一半滑动到屏幕一半时,均不会执行基本到7大生命周期;
  1. 分屏占据手机屏幕一半滑动到下半部分超过屏幕到一半由不到屏幕一半滑动到超过屏幕一半时,相反时,执行的生命周期为:onPause -> onStop -> onDestroy -> onCreate -> onStart -> onResume;
  1. 销毁 Activity 时生命周期是:onPause -> onStop -> onDestroy;分屏情况下并没有像单个 Activity 占据屏幕时退到后台,点击手机的 home 键,只是会将应用滑到顶部,此时不会执行生命周期。

Tips1: 和尚我个人的理解是在少于等于屏幕一半时,调整分割线,不执行生命周期;大于等于屏幕一半时,调整分割线,Activity 会先销毁再新建。 Tips2: 和尚我这里不在分析横屏情况下分屏周期,但是发现两个有意思的地方,一个是无论是竖屏状态下,占据屏幕的多少,切换到横屏时只会占用屏幕一半,相反由横屏切换竖屏,均占据手机屏幕一半;二是横屏情况下只有占据手机屏幕一半的情况,来回滑动无法调整进行屏幕宽度变化。而同样执行时均为先销毁再创建的生命周期 onPause -> onStop -> onDestroy -> onCreate -> onStart -> onResume。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿策小和尚 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档