반응형
How to use launchMode
Activity를 사용할 때, 가끔 드는 생각이 있습니다. 이 Activity는 한 번만 불러지는 걸까? 아니면 불러질 때마다 복사가 되는 걸까? Activity를 옮겨 다니다가(startActivity) 뒤로 가기 키(BackPressKey)를 누르면 이전 Activity는 어디를 가리킬까?
Launch Mode의 종류
Type | Mode | Description |
일반적인 시작 | standard | Default. 다중 인스턴스 : Y 인텐트 호출 (ex. startActivity를 사용) 할 때마다 새로운 인스턴스를 생성 후 이동합니다. |
일반적인 시작 | singleTop | 다중 인스턴스 : 조건부 인텐트 호출 시 기존에 호출되어 인스턴스가 존재한다면, onNewIntent() 메서드를 호출하여 기존 인스턴스로 이동합니다. |
특수한 시작 (권장 x) |
singleTask | 다중 인스턴스 : 조건부 Task 단위로 singleTop과 동일하게 작동합니다. |
특수한 시작 (권장 x) |
singleInstance | 다중 인스턴스 : N "singleTask"와 동일하지만 시스템이 인스턴스를 보유한 작업으로는 어떤 다른 활동도 실행하지 않는다는 점이 다릅니다. 활동은 항상 작업의 유일한 단일 멤버입니다. |
특수한 시작 (권장 x) |
singleInstancePerTask | 다중 인스턴스 : 조건부 이 활동은 작업의 루트 활동, 즉 작업을 만든 첫 번째 활동으로만 실행될 수 있으므로 작업에는 이 활동의 인스턴스가 하나만 있습니다. 그러나 활동은 서로 다른 작업에서 여러 번 인스턴스화될 수 있습니다. |
자세한 설명은 아래의 안드로이드 개발자 사이트에서 자세히 나와있습니다.
https://developer.android.com/guide/topics/manifest/activity-element?hl=ko#lmode
실제로 자주 사용되는 건 standard와 singleTop인데, 별도의 지정이 되지 않으면 standard로 이용되므로, singleTop으로 사용하고 싶을때만 지정해 준다고 보면 됩니다.
사용방법
AndroidManifest.xml
<activity android:name=".StandardActivity" android:launchMode="standard"/>
<activity android:name=".SingleTopActivity" android:launchMode="singleTop"/>
<activity android:name=".SingleTaskActivity" android:launchMode="singleTask"/>
<activity android:name=".SingleInstanceActivity" android:launchMode="singleInstance"/>
<activity android:name=".SingInstancePerTaskActivity" android:launchMode="singleInstancePerTask"/>
반응형
'개발 창고 > Android' 카테고리의 다른 글
[Kotlin] How to Extract Initial Consonants (1) | 2023.11.25 |
---|---|
[Kotlin] How to Resolve the Deprecate of onBackPressed (2) | 2023.11.25 |
[Kotlin] How to check the resume and pause of all activities (2) | 2023.11.23 |
[Android] How to debug web views in Chrome (0) | 2023.11.22 |
[Kotlin] 카카오 내비게이션을 내 앱에서 호출하는 방법 (0) | 2023.07.29 |