Я пытаюсь сделать наше видео приложение для поддержки многопоточного режима Android N. Я обнаружил, что жизненный цикл активности запутывается в многооконном режиме. Явление - это когда наши макеты приложений на верхнем экране со всем экраном на портрете, затем я нажимаю кнопку "Домой", а верхнее приложение onPause(), но onStop() не вызывается.
Согласно руководству Google https://developer.android.com/guide/topics/ui/multi-window.html#lifecycle, видеоприложение должно приостанавливать воспроизведение видео в onStop() обратном вызове, а не onPause() обратном вызове.
В этой ситуации нажата кнопка "домой", действие переходит в фоновый режим и становится недоступным для пользователя, наше приложение должно приостанавливать воспроизведение видео, но мы не можем получить обратный вызов onStop(). Между тем, активность не запускает обратный вызов onMultiWindowChanged(), это означает, что активность все еще находится в режиме многострочного просмотра, хотя она находится в фоновом режиме. В этом случае isInMultiWindowMode() вернет true.
Такая же проблема возникает, когда приложение находится на левом экране с полным экраном в ландшафте.
Я искал этот вопрос и нашел, что у кого-то есть проблемы с публикацией в google, но не обрабатываются в выпуске Android Nougat.
Итак, когда самое подходящее время для приостановки воспроизведения видео в такой ситуации? Если мы приостановим видео в обратном вызове onPause(), но действие может быть видимым пользователю в режиме многострочного просмотра. Если мы этого не сделаем, мы не сможем получить обратный вызов onStop() в этом случае.
Есть ли подходящее обходное решение для таких случаев?