我的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
,因此该解决方案是不够的。 最佳答案
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));
关于android - 开始不支持多窗口的新 Activity ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39297184/