마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

PIP 모드에서 다시 앱을 실행했을때 화면

0 추천
A라는 액티비티에서 PIP모드로 전환 후 다시 해당 앱을 실행하면
A이전의 액티비티화면이 나옵니다. 확인해보니 PIP모드로 전환이 되면 해당 액티비티가 기존 TASK에서 분리되어 그런 것 같더라고요

하지만 저는 다시 앱을 실행하면 PIP모드 전환 이전의 A라는 액티비티를 다시 보여주게 하고 싶은데

생각이 나는건 A이전의 액티비티가 다시 실행됐을때 PIP모드를 종료시키고 A로 전환하는 방법밖에 없는데 더 괜찮은 아이디어가 있을까요??
자발개보초 (340 포인트) 님이 2023년 3월 22일 질문

1개의 답변

0 추천
 
채택된 답변
안드로이드에서 지원하는 공식적인 방법은 없은 것 같고 일부 개발자들이 사용하는 방법으로는
콜백과 lifecycle을 조합해서 pip액티비티의 상태를 알수 있을겁니다. 아래와 같은 행태로 처리를 합니다.

override fun onPictureInPictureModeChanged(isInPictureInPictureMode: Boolean, newConfig: Configuration?) {
    if (lifecycle.currentState == Lifecycle.State.CREATED) {
        //user clicked on close button of PiP window
        finishAndRemoveTask()
    }
    else if (lifecycle.currentState == Lifecycle.State.STARTED){
        if (isInPictureInPictureMode) {
            // user clicked on minimize button
        } else {
            // user clicked on maximize button of PiP window
        }
    }
    super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
}
spark (224,800 포인트) 님이 2023년 3월 23일 답변
spark님이 2023년 3월 23일 수정
...