728x90
반응형
참고 : http://mokiprogramming.blogspot.com/2014/01/activity-stack.html
가장 많이 사용하는 flag 상수는 아래와 같다.
1
2
3
|
intent.addFlags(
Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK
);
|
cs |
(아래 내용은 실제와 다를 수 있다.
내가 제주껏 이해한 내용이니 만약 틀리면 신나게 지적질 바랍니다_급공손모드)
만약 내가 이동한 액티비티 경로가 다음과 같다고 하자.
A --> B --> C --> D --> B --> C
위 상황에서 back 버튼을 누른다면 어떻게 될까?
- FLAG_ACTIVITY_CLEAR_TASK
- A --> B(old) --> C --> D --> B(new)
- 마지막 B로 이동할 때 A, B, C, D 모두 제거된다.
- 그래고 새로운 B가 호출된다
- FLAG_ACTIVITY_SINGLE_TOP
- 위 상황에서 B의 상태를 B(new)가 아닌 B(old)로 유지하고 싶다면 이 플래그를 사용한다.
- 태스크 상황은 아래와 같다.
- A(?) --> B(old) (A는 old로 추정. 확실하지 않으니 알게되면 피드백 부탁합니다.)
- 만약 FLAG_ACTIVITY_CLEAR_TASK를 쓰지 않았다면 재사용 없이 B(new)가 호출된다.
- FLAG_ACTIVITY_NEW_TASK
- affinity의 영향을 받는다. affinity, task, flag에 대해서는 링크 참조
- 최종 task는 다음과 같다
- A(?) --> B(old) --> C(new)
- back을 하게 되면 A(?) --> B(old)
728x90
반응형
'Android, iOS' 카테고리의 다른 글
WebView size 문제로 빡칠 때 (2) | 2018.06.08 |
---|---|
Toolbar를 만들었는데 Statusbar가 가리고 있다면?? (0) | 2018.06.07 |
화면 전환할 때 IllegalStateException이 나타난다면? commitAllowingStateLoss (0) | 2018.04.02 |
Intent로도 data를 넘기기 어려울 땐? ResultReceiver (0) | 2018.03.28 |
EditText로인해 키보드가 나타나는 것을 막으려면? (0) | 2018.03.22 |
Comment