Мой 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
, поэтому этого решения недостаточно.
Что вы 'targetSdkVersion'? Что-то изменится, если вы удалите 'CLEAR_TOP' и' SINGLE_TOP' (которые вам не нужны AFAIK)? – CommonsWare
Я удалил 'CLEAR_TOP' и' FLAG_ACTIVITY_SINGLE', и он все еще не работает. – Vinnie
@CommonsWare TargetSdkVersion is 24 – Vinnie