禁用Android N的多窗口功能不适用于某项活动

use*_*849 10 android multi-window android-7.0-nougat

我想禁用我的应用中的活动的多窗口支持.我resizeableActivity在Manifest中设置为false,但是当我长按最近的应用程序图标时,应用程序仍处于多窗口模式.以下是我的清单:

<activity
    android:name=".MainActivity"
    android:resizeableActivity="false"
    android:excludeFromRecents="true"
    android:icon="@drawable/ic_launcher_home"
    android:theme="@style/AppThemeV3.CustomToolbar">
</activity>
Run Code Online (Sandbox Code Playgroud)

每个文件:

android:resizeableActivity=["true" | "false"]

如果该属性设置为false,则该活动不支持多窗口模式.如果此值为false,并且用户尝试以多窗口模式启动活动,则活动将占据整个屏幕.

我还尝试在清单中的应用程序级别将此属性设置为false,但它仍然以多窗口模式启动.任何关于我做错的指针都会受到高度赞赏吗?

Com*_*are 6

位于任务根目录的活动控制窗口大小.你的选择是:

  1. 追溯到您应用中的所有可能的任务根活动,并确保它们都有 android:resizeableActivity="false"

  2. Intent在启动或清单设置时,通过标志强制将此活动转换为另一个任务

  • 值得一提的是,Intent.FLAG_ACTIVITY_NEW_TASK是出了名的错误.因此对于遇到此问题的其他人 - 您可能希望将新活动的taskAffinity设置为与默认值不同的值.例如:<manifest ... <application ... <activity android:name ="com.example.NoSplitActivity"android:screenOrientation ="portrait"android:resizeableActivity ="false"android:taskAffinity ="com.example.NoSplitActivity "/> (2认同)