Что произойдет, если я не использую launchMode «singleTask» в Android?

#android #android-picture-in-picture

#Android #android-картинка в картинке

Вопрос:

Я реализую изображение в режиме изображения. В документации говорится, что вы можете использовать android:launchMode="singleTask" и переопределять onNewIntent(). Если я это сделаю, он вызовет onConfigurationChanged() (если activity находится в режиме picture в режиме picture). Итак, я этого не хочу.

Что произойдет, если я не использую singleTask launchMode? Вызовет ли это какие-либо проблемы или ошибки при запуске этого конкретного действия во второй раз?

Ответ №1:

Для PIP использование singleTask идеально, поскольку оно создаст совершенно другой стек для обработки функций PIP. Если пользователь находится в режиме pip и если пользователь нажимает на значок приложения, новая задача не будет создана, та же задача будет использована повторно, и намерение будет передано onNewIntent(Intent intent) методу. Таким образом, мы можем реализовать pip в приложении с одним действием, поскольку нам не нужно поддерживать backstack в одном действии.

Комментарии:

1. Да, это абсолютно верно. Но мое приложение — это приложение для браузера. Итак, я хочу открыть новую вкладку в onNewIntent(). Итак, если приложение находится в режиме pip, то оно вызывает onconfigurationchanged() . Это вызывает некоторые проблемы, которых не будет, если я не использую singleTask в качестве режима запуска. Теперь это нормально? Или это вызовет какие-то другие проблемы? А что, если пользователь откроет видео в режиме pip в этой новой вкладке, когда уже запущен режим pip для предыдущего экземпляра activity?