티스토리 뷰
Activity Stack
• 액티비티를 여러 개 호출 시 스택이 쌓임.
• 스택에서 맨 위에 있는 액티비티가 화면에 보임.
• 액티비티 스택을 관리하는 법이 여러 개 있음.
* 액티비티 스택은 되도록이면 건들지 않는 것이 좋다.
- 복잡한 부분이기 때문에 꼬일 수 있다.
- 사용자들도 스마트 폰에 익숙해지면서 예상하는 동작이 있는데, 예상을 벗어나면 불편하다.
- 안드로이드 공식 문서에서도 강조하고 있다.
-> 액티비티 스택은 분명한 의도를 가지고 적용해야 한다.
Activity Stack 관리
1. AndroidManifest의 launchMode 이용
• <activity android:launchMode="설정값">
• standard
- 기본 값
- 후입선출(LIFO, Last In First Out)
- 호출하는 모든 액티비티가 위에 쌓인다.
• singleTop
- 가장 위(Top)의 액티비티는 중복해서 쌓이지 않는다.
- 가장 위의 액티비티가 아니라면 중복이 가능하다.
• singleTask
- 쌓여있던 스택은 남아있고, 새로운 스택 공간이 하나 더 생긴다.
- 새로 생긴 스택 공간에 다른 액티비티 스택이 쌓인다.
- 사용자가 보기엔 스탠다드와 똑같다.
• singleInstance
- 쌓여있던 스택은 남아있고, 새로운 스택 공간이 하나 더 생긴다.
- 새로 생긴 스택 공간에는 다른 액티비티 스택이 쌓이지 않는다.
- 다른 액티비티가 호출되면 기존에 있던 스택 공간에 쌓인다.
2. Intent Flag 이용
• addFlag : Flag 추가
• setFlag : 기존의 Flag 삭제, 다시 설정.
• FLAG_ACTIVITY_NEW_SINGLE_TOP : singleTop과 같다.
• FLAG_ACTIVITY_NEW_TASK : singleTask와 같다.
• FLAG_ACTIVITY_NO_HISTORY
- 호출된 액티비티가 스택에 쌓이지 않는다.
ex) 로딩 액티비티
• FLAG_ACTIVITY_REORDER_TO_FRONT
- 호출된 액티비티가 스택에 존재할 경우 가장 위(Top)로 올려준다.
• FLAG_ACTIVITY_CLEAR_TOP
- 호출된 액티비티가 스택에 존재할 경우 해당 액티비티 위의 스택들을 다 지운다.
* 종류가 훨씬 많지만 다 외울 수 없다.
-> stack을 관리할 수 있다는 것을 알야아 한다.
이 글은
패스트 캠퍼스 Android 앱 개발의 정석 with Kotlin 올인원 패키지 Online
강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.
'📱 Android > 💡 개념' 카테고리의 다른 글
[Android/개념] 10. Bundle(번들) (0) | 2022.11.03 |
---|---|
[Android/개념] 9. Text Changed Listener (0) | 2022.11.02 |
[Android/개념] 7. Intent(인텐트) (0) | 2022.10.31 |
[Android/개념] 6. Context(컨텍스트) (0) | 2022.10.28 |
[Android/개념] 5. 앱 구성 요소(App Component) (0) | 2022.10.27 |