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"

你可能感兴趣的:(Android7.0,多窗口,Activity生命周期,禁用多窗口,横竖屏)