我的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
,因此这个解决方案是不够的。
答案 0 :(得分:0)
FLAG_ACTIVITY_NEW_TASK
似乎不够。同时使用FLAG_ACTIVITY_NEW_TASK
和FLAG_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