[안드로이드 공부]/액티비티

안드로이드 액티비티 싱글 탑의 비밀

코코모아 2015. 10. 9. 18:17

아래는 코모스튜디오가 직접 만든 무료 앱이에요
(한 번만 봐주세요 ^^)

01

02

03

정각알림 만들기(말하는시계)

말하는 시계 (취침, 자전거) 

말하는 타이머 음성 스톱워치 

안드로이드 싱글 탑? 한글로 적으니 뭔가 있어 보이기는 하는데.... 
싱글탑의 비밀 중 한 개만 얘기 하고 가도록 하겠다.(사실 초보라 아는 것만 얘기 하지만 있어 보이고 싶나보다) 

만약 액티비티를 실행 할 때 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 밖에 없게 되는 겁니다. 

제목을 싱글탑의 비밀이라고 했는데.... 노 히스토리의 비밀이라고 해야 맞는 것 같네요...


모든 게시물은 코모스튜디오의 소유이며, 무단 복제 수정은 절대 불가입니다.
퍼가실 경우 댓글과 블로그 주소를 남기고 해당 게시물에 출처를 명확히 밝히세요.