Android 7.0 多窗口模式

多窗口模式简介

由于手机屏幕大小的限制,传统情况下一个手机只能同时打开一个应用程序。从Android 7.0 开始引入多窗口模式功能,如许在一个屏幕中同时打开两个应用程序。

进入多窗口模式

注意:使用的是Genymotion模拟器
Google Nexus 5X-7.0.0

《Android 7.0 多窗口模式》 a.png

打开任意程序,长按Overview即可进入多窗口模式。

多窗口模式,同时打开两个应用

《Android 7.0 多窗口模式》 b.png

当横竖屏切换的时候,自动切换成左右分屏的多窗口模式

《Android 7.0 多窗口模式》 c.png

哈哈!这样就可以一边看电影一边聊微信了

多窗口模式下的生命周期

多窗口模式并不会改变原有的生命周期,只会将用户最近交互的那个活动设置为运行状态,而将另一个设置为暂停状态,如果用户又和暂停的活动交互,那么这个暂停的活动就会变成运行状态,之前运行的活动就会变成暂停状态。

当我们打开一个程序的时候,首先会执行主界面的

onCreate()->onStart()->onResume()

然后长按Overview按钮,进入多窗口模式:

onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume()

我们会发现,当进入多窗口模式的时候,Activity会被重建。

针对进入多窗口模式时活动会被重建,如果想改变这种情况,可以在清单文件中对Activity进行配置

   <activity android:name=".activity.SplashActivity"
                  android:configChanges="orientation|keyboardHidden|screenLayout|screenSize">

            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
   </activity>复制代码

禁用多窗口模式

在清单文件的application节点

 android:resizeableActivity="false"复制代码

resizeableActivity=”false”表示禁用多窗口模式

resizeableActivity=”true”表示启用多窗口模式

注意:这个属性只有当前项目的targetSdkVersion指定为24或者更高的时候才有效,否则会失效。

如果禁用多窗口模式,长按Overview会弹出Toast:
“App doesn’t support split screen”

如果targetSdkVersion低于24,并且不允许横竖屏切换,应用也将不支持多窗口模式

//屏幕一直为竖直方向
android:screenOrientation="portrait"复制代码

重新允许程序,长按Overview会弹出Toast:
“App doesn’t support split screen”,说明已成功禁用多窗口模式。

    原文作者:Android
    原文地址: https://juejin.im/post/58d24a9a0ce4630057e944e6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞