Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 시퀀스다이어그램
- scaletype
- MVVM
- DistributedSystems
- stateflow
- threadsafety
- android
- LayeredArchitecture
- LazyInitialization
- Kotlin
- SystemDesign
- 행위패턴
- NetworkCommunication
- 이미지짤림
- 아키텍쳐패턴
- RxJava
- 이미지찌그러짐
- ClientServerArchitecture
- ImageView
- SharedFlow
- 옵서버
- SDLC
- 클래스다이어그램
- 싱글톤패턴
- 유스케이스다이어그램
- ArchitecturePatterns
- 전역상태관리
- decoding
- 구조패턴
- SoftwareArchitecture
Archives
- Today
- Total
Kyung_Development
android:launchMode 각각의 특징 본문
- standard:
- 기본 launchMode입니다. 새로운 인스턴스가 항상 생성되며, 백스택에 쌓입니다.
- 각각의 인텐트에 대해 새로운 액티비티 인스턴스가 생성됩니다
- android:name=".MainActivity" android:launchMode="standard"
이 예제에서는 MainActivity가 standard launchMode로 설정되어 있습니다. 따라서 앱에서 MainActivity를 여러 번 시작하면 새로운 인스턴스가 생성됩니다. - MainActivity - > startActivity -> SubActivity로 이동 -> 앱 종료하지 않고 다시 실행 -> SubActivity 노출됨
- singleTop:
- 액티비티 인스턴스가 백스택의 맨 위에 있으면, 해당 인스턴스를 사용하여 인텐트를 처리합니다.
- 인텐트를 받을 때 현재 액티비티가 이미 맨 위에 있는 경우에만 새 인스턴스를 생성하지 않습니다.
- android:name=".MainActivity" android:launchMode="singleTop"
MainActivity가 singleTop launchMode로 설정되어 있습니다. 만약 앱에서 MainActivity가 이미 최상위에 있는 경우(백스택의 맨 위), 새로운 인스턴스를 생성하지 않고 현재 인스턴스를 사용합니다. - MainActivity - > startActivity -> SubActivity로 이동 -> 앱 종료하지 않고 다시 실행 -> SubActivity 노출됨
- singleTask:
- 액티비티가 백스택에 하나만 존재하고, 그 위에 다른 액티비티가 쌓입니다.
- 이미 존재하는 경우에는 새 인스턴스를 생성하지 않고, 해당 인스턴트로 이동합니다.
- 이 모드에서의 액티비티는 다른 앱에서도 재사용될 수 있습니다.
- android:name=".MainActivity" android:launchMode="singleTask"
SecondActivity가 singleTask launchMode로 설정되어 있습니다. 이 경우에는 SecondActivity가 백스택에 하나만 존재하며, 다른 액티비티가 위에 쌓입니다. 이미 존재하는 경우에는 새 인스턴스를 생성하지 않고 해당 인스턴트로 이동합니다. - MainActivity - > startActivity -> SubActivity로 이동 -> 앱 종료하지 않고 다시 실행 -> MainActivity 노출됨
- singleInstance:
- 액티비티가 독립적인 태스크로 실행됩니다. 따라서 그 액티비티를 시작한 앱과 별도의 백스택이 생성됩니다.
- 다른 앱에서도 동일한 인스턴스를 공유하지 않습니다.
- 다른 앱에서 이 액티비티를 시작하면 새로운 인스턴스가 아닌 기존의 인스턴스가 사용됩니다.
- android:name=".MainActivity" android:launchMode="singleInstance"
ThirdActivity가 singleInstance launchMode로 설정되어 있습니다. 이 경우에는 액티비티가 독립적인 태스크로 실행되므로, 다른 앱에서도 동일한 인스턴스를 공유하지 않습니다. - MainActivity - > startActivity -> SubActivity로 이동 -> 앱 종료하지 않고 다시 실행 -> SubActivity 노출됨
- singleInstancePerTask:
- singleInstance와 비슷하지만, 동일한 태스크 내에서만 인스턴스를 공유합니다.
- 같은 앱에서 시작된 경우에는 singleInstance와 동일한 동작을 하지만, 다른 앱에서 시작되면 새로운 인스턴스가 생성됩니다.
- android:name=".MainActivity" android:launchMode="singleInstancePerTask"
FourthActivity가 singleInstancePerTask launchMode로 설정되어 있습니다. 이 경우에는 singleInstance와 비슷하지만, 같은 태스크 내에서만 인스턴스를 공유합니다 - MainActivity - > startActivity -> SubActivity로 이동 -> 앱 종료하지 않고 다시 실행 -> SubActivity 노출됨