Android 7.0 多窗口模式的生命周期和禁用多窗口模式的方法

随着手机的屏幕越来越大,谷歌在Android7.0也给我们带来了一项新的功能-多窗口模式,如何启动多窗口模式?安卓手机有3个实体按键,长按手机右侧的按键就能够进入多窗口模式。这个模式下允许多个应用同时运行,而且都可以看见,作为开发者,我们需要了解切换焦点时候它的生命周期是如何运行的。

生命周期详解:

启动应用

12-21 22:26:34.727 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onCreate: 
12-21 22:26:34.727 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onStart: 
12-21 22:26:34.728 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onResume: 
点击右侧按钮,要长按
12-21 22:26:54.400 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onPause: 
12-21 22:26:54.480 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onStop: 
12-21 22:26:54.480 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onDestroy: 
12-21 22:26:54.493 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onCreate: 
12-21 22:26:54.493 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onStart: 
12-21 22:26:54.496 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onResume: 
12-21 22:26:54.496 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onPause: 

这时我们可以选择启动其它应用、点击当前应用

1.点击当前应用

12-21 22:28:45.510 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onResume: 

2.点击其它应用

12-21 22:29:14.083 7046-7046/com.example.dongcai.multiscreendemo2 I/second_app: onPause: 


以上为当前app的生命周期,如果不是当前的app的生命周期如下:

1.直接关闭

12-21 22:39:19.303 16532-16532/com.example.dongcai.multiscreendemo2 I/second_app: onDestroy: 

2.点击启动

12-21 22:42:21.953 16889-16889/com.example.dongcai.multiscreendemo2 I/second_app: onRestart: 
12-21 22:42:21.954 16889-16889/com.example.dongcai.multiscreendemo2 I/second_app: onStart: 
12-21 22:42:21.955 16889-16889/com.example.dongcai.multiscreendemo2 I/second_app: onResume:

当然,这里如果你的应用已经destory了,那么会执行onCreate方法重建。

12-21 22:46:51.997 16889-16889/com.example.dongcai.multiscreendemo2 I/second_app: onCreate: 
12-21 22:46:51.997 16889-16889/com.example.dongcai.multiscreendemo2 I/second_app: onStart: 
12-21 22:46:51.998 16889-16889/com.example.dongcai.multiscreendemo2 I/second_app: onResume: 

好,通过生命周期我们发现进入多窗口模式时活动会被重新创建,当然,这是默认设置。我们可以通过设置禁止。

在AndroidManifest.xml清单文件中Activity标签配置

 
android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"

很眼熟是不是?是的,就是禁止切换横竖屏,这样配置后,无论横竖屏还是多窗口模式,活动都不会被重新创建。一旦屏幕发生变化事件,会调用Activity的onConfigurationChanged()方法,如果要处理一些逻辑,重写这个方法即可。


禁用多窗口模式:

在API 24以上,可以在application或者activity标签下面设置禁用。

 
android:resizeableActivity="false"

在API 24以下的话,Android规定,如果项目指定的targetSdkVersion低于24,并且活动是不允许横竖屏切换,那这个应用也不支持多窗口模式。

不允许横竖屏非常简单,也是一行配置搞定,在Activity标签下设置:

android:screenOrientation="portrait"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值