아래는 코모스튜디오가 직접 만든 무료 앱이에요(한 번만 봐주세요 ^^)
안드로이드 싱글 탑? 한글로 적으니 뭔가 있어 보이기는 하는데....
싱글탑의 비밀 중 한 개만 얘기 하고 가도록 하겠다.(사실 초보라 아는 것만 얘기 하지만 있어 보이고 싶나보다)
만약 액티비티를 실행 할 때 FLAG_ACTIVITY_SINGLE_TOP과 같은 플래그를 사용 하지 않는다면... 예를 들어 NO_HISTORY와 같은 플래그를 썼다면 돌아 올길이 막막해지는 경우가 있다.
문제
1. A액티티비에서 startActivity를 FLAG_ACTIVITY_NO_HISTORY로 실행한 해서 B 액티비티로 갔다.
2. B액티비티에서 startAcitivityForResult를 실행 하여 다른 액티비티 C로 이동 하였다.
3. C액티비티 또는 Preference 에서 볼일이 끝났다. 그럼 C 에서는 볼일을 다 봤으니 B에게 데이터를 넘겨주면서 끝날 것이다.
4. 그런데 말입니다.
5. C는 B에게 보내지 않고 A에게로 보냅니다. 아무리... 기다려 봐야 B는 망부석이 되어갈 뿐입니다.
왜냐?
A에서 B로 갈 때 FLAG_ACTIVITY_SINGLE_TOP 를 사용 해서 갔기 때문에 스택에 남아 있지 않습니다. 즉, B는 유령이된 셈이죠. C가 아무리 B를 불러봐야 대답 하는 것은 A 밖에 없게 되는 겁니다.
제목을 싱글탑의 비밀이라고 했는데.... 노 히스토리의 비밀이라고 해야 맞는 것 같네요...
' [안드로이드 공부] > 액티비티' 카테고리의 다른 글
[안드로이드] AppCompatActivity에서 타이틀바 없애기 -requestFeature() must be called before adding content (2) | 2016.02.12 |
---|---|
[안드로이드] 액티비티 가로 세로 모드 고정 (0) | 2015.10.16 |
안드로이드 error activity class does not exist (0) | 2015.10.12 |
액티비티가 아닌 곳에서 startActivityForResult 사용하기 (0) | 2015.10.09 |
안드로이드 액티비티 중복 실행 방지 (0) | 2015.08.18 |
모든 게시물은 코모스튜디오의 소유이며, 무단 복제 수정은 절대 불가입니다. |
퍼가실 경우 댓글과 블로그 주소를 남기고 해당 게시물에 출처를 명확히 밝히세요. |