본문 바로가기

노력을 이기는 재능은 없고
노력을 외면하는 결과도 없다.
- 이창호 9단

D E V E L O P M E N T/Android

[Andriod] 실행하고 있는 앱을 홈 화면으로 이동했다가 다시 앱으로 돌아왔을때 마지막 실행하던 앱 화면 보이게 하는 방법

  Junesker   2021. 7. 19.
반응형

앱 개발중에 로그인을 하고 회원목록에서 회원을 선택 후, 메인 시스템으로 접속한 상태에서 여러가지 케이스를 진행 후에 앱 실행을 백그라운드로 돌아가게끔 홈 화면으로 이동 후에 다시 앱을 실행하면 로그인 화면으로 돌아가는 문제가 발생했다. 홈 화면으로 갔다가 다시 앱을 실행하게되면 보통은 마지막으로 실행하고 있던 앱 화면이 나타나야 하는데 그렇지 않았다. 그래서, 마지막 앱 화면이 나타날 수 있도록 생명주기와 연관지어 셋팅해보았다.

 

 

 

 

 

실행중인 앱 홈 화면에서 다시 앱으로 돌아갔을때,
마지막 실행하던 앱 화면 보이게 하는 방법

 

 

 

 

 

1.  AndroidManifest.xml내 해당 엑티비티 설정을 변경 또는 추가한다.

 

AndroidManifest.xml 수정

android:launcMode="singleTop"

작성자는 메인 Activity에서 실행하던 앱 화면이 다시 보여야했기 때문에 메인 액티비티에서 설정을 진행했다. Activity설정 내, android:launcMode를 singleTop으로 설정한다. 해당 설정값은 onPause() > onNewIntent() > onResume()으로 생명주기를 이동한다.

 

 

 

 

 


LauncMode

액티비티를 시작하는 방법에 대한 지침입니다. 인텐트를 처리하기 위해 택티비티를 호출할 때 발생하는 것을 결정하기 위해 Intent객체에서 액티비티 플래그와 함께 작동하는 4개의 모드가 있다. 그 모드는 아래와 같다.

standard, singleTop, singleTask, singleInstance

기본 모드는 standard이다. LauncMode는 두개의 그룹에 속하는데 한 그룹은 standard와 singleTop이고 다른 그룹은 singleTask와 singleInstance이다. standard와 singleTop은 시작 모드를 포함한 액티비티는 여러 번 인스턴스화할 수 있다. 인스턴스는 아무 작업에 속할 수 있으며 엑티비티 스택의 아무 장소에 위치 할 수 있다. 다른 그룹에 속하는 singleTask와 singleInstance는 액티비티 단일 작업만 시작할 수 있다. 해당 엑티비티는 항상 액티비티 스택의 루트에 있다. 또한 기기는 한번에 단일 액티비티 인스턴스만 유지할 수 있다.

 

여기서 standard와 singleTop액티비티는 해당 인스턴트가 새 인텐트를 수신하게 되면 새 인스턴스를 생성하지 않는다. 그리고, 다른 그룹에 속해 있는 singleTask와 singleInstance는 특수한 시작으로 일반적 용도에는 권장하지 않는데, 실제로 안드로이드 디벨로퍼에서도 대부분의 애플리케이션에 적합하지 않습니다라고 빨간색 강조로 유의하고 있다.

Android Developers 참고했습니다.

 

 

 

 

 

반응형

댓글