本文已参与「新人创作礼」活动,一起开启掘金创作之路。
(一)华为手机分屏测试(Android10)
运行一个App,以MainActivity为例
1.打开App时的生命周期
onCreate->onStart->onResume
2.打开任务列表时的生命周期
onPause->onStop
3.在任务列表中进行分屏后的生命周期
\
onDestroy->onCreate->onStart->onResume->onPause->onResume
这里我手机的分屏会自动获取焦点,没有焦点的只会走到onPause,需要自己手动点击activity获取焦点
所以一些播放视频或者动画效果的功能,暂停的功能代码就不能放在onPause里了,应该放在onStop里
4.取消分屏时的生命周期
\
onPause->onStop->onDestroy->onCreate->onStart->onResume
5.移动分屏时的生命周期
\
onPause->onStop->onDestroy->onCreate->onStart->onResume
(二).小米手机分屏测试(Android10)
1.打开App时的生命周期
onCreate->onStart->onResume
2.打开任务列表时的生命周期
onPause->onStop
3.进行分屏时的生命周期
onDestroy->onCreate->onStart->onResume
4.回到桌面时的生命周期
onPause
5.回到分屏时的生命周期
onResume
6.移动分屏时的生命周期
onPause->onStop->onDestroy->onCreate->onStart->onResume
7.退出分屏时的生命周期
onPause->onStop->onDestroy->onCreate->onStart->onResume
注:
因为分屏的时候会重新走生命周期,对于fragment尽量使用replace而不是add,数据请求也会多调用几次,
要是介意的同学也可以使用下面的代码在AndroidManifest.xml中配置禁用分屏,分屏的时候系统会有不支持分屏的提示
android:resizeableActivity="false"
以上就是两种手机的分屏时的生命周期测试了,记录下来方便以后写逻辑时多加注意,其他手机由于条件限制没有办法测试,如若有什么不一样的地方欢迎朋友们下方评论区多多指教,大家共同进步!