启动不支持多窗口的新活动

时间:2016-09-02 16:40:23

标签: android android-studio multi-window android-7.0-nougat

我的MainActivity支持Android N的新多窗口模式。但是,我希望我的AwesomeActivity不支持多窗口。

我尝试了以下内容:

的AndroidManifest.xml

<activity
    android:name=".activities.MainActivity"
    android:label="@string/app_name"
    android:windowSoftInputMode="stateHidden"/>
<activity android:name=".activities.AwesomeActivity"
    android:resizeableActivity="false" />

MainActivity.java

Intent intent = new Intent(this, AwesomeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
//removing CLEAR_TOP and SINGLE_TOP has no effect either
//Intent.FLAG_ACTIVITY_CLEAR_TASK in conjunction with Intent.FLAG_ACTIVITY_NEW_TASK does not have an effect either

我认为通过添加Intent.FLAG_ACTIVITY_NEW_TASK(有或没有Intent.FLAG_ACTIVITY_CLEAR_TASK),这意味着AwesomeActivity将成为其自己的任务堆栈中的根活动,因此,我不应该能够在AwesomeActivity进入多窗口模式。

但是,这不起作用,我仍然可以从AwesomeActivity切换到多窗口模式,这不是理想的行为。

尽管Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK的组合似乎可以用于启动AwesomeActivity,但是如果你在AwesomeActivity中将应用程序放在后台,那么将AwesomeActivity带回前台,你将会从任务堆栈中删除时无法返回MainActivity。我相信在大多数情况下,用户希望能够返回MainActivity,因此这个解决方案是不够的。

2 个答案:

答案 0 :(得分:0)

FLAG_ACTIVITY_NEW_TASK似乎不够。同时使用FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_MULTIPLE_TASK

      startActivity(new Intent(MainActivity.this, ActivityTwo.class)
        .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_MULTIPLE_TASK));

答案 1 :(得分:-1)

添加此内容然后尝试,我还没有通过验证 机器人:resizeableActivity =&#34;假&#34;

请查看此链接以获取帮助https://developer.android.com/guide/topics/ui/multi-window.html#overview