随着手机的屏幕越来越大,谷歌在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"