댓글만 열나게 달던 그냥가자입니다.
이번엔 큰맘먹고 글하나 써볼라합니다. 주제는 제목에 있구요...
완전히 실행되는 수준으로 코드를 달지는 않겠지만 핵심은 모두 설명하겠습니다.


1. Notification 쓰면 Activity가 맨날 새로 떠요...
저도 이거땜시 죽는줄 알았습니다. 스레드 하나가 MainActivity 생명주기에 종속되서 새로 떴을때 다 꼬였거든요...
정말 검색해서 (실제로 주제와 딱 맞는것을 검색하는데는 실패...) 나오는 파라미터들을 이리저리 조합해도
원하는 결과는 얻지 못했습니다.

2. 그러다 문득 생각난 SMS...
Notification을 잴 많이 쓰는 기본어플은 누가 뭐래도 SMS겠죠....
그래서 냅다 풀소스에서 죽어라 찾았습니다.
거기서 특이한넘 발견....

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TOP
                | Intent.FLAG_ACTIVITY_SINGLE_TOP);

써봤더니... 결과는

3. 오... 지정한 액티비티가 찾아서 뜬다...
말그대로 찾아서 뜹니다... 근데 여기서 암초가 하나 있었으니...

4. 근데 root activity는 새로 뜬다.
task 설명한곳들을 찾아보면 activity의 stack이고.... 거기에 가장 아래에 있는 넘을 root activity라고 하더군요
근데 문제는 Notification으로 root activity를 띄우면 제가 원하는 동작을 제대로 수행하지 못하고 여러개 띄운다는겁니다.
액티비티 속성에 singleTask 달면 하나만 띄우긴 하는데 다른데서 또 사고가 납니다....
Noti 로 실행하고 다시 홈가서 런처를 이용한 실행이라던가... 등등등....
여기서 꼼수가 등장합니다.

5. root activity를 더미로 하나 두자....
애초에 root activity가 두개 뜨는게 문제라믄... 그 activity를 root로 안하믄 되지... 라는 생각으로
root를 더미로 하나 만들고 그 위에 쭉 올렸습니다.
그랬더니 두둥.....
정말 원하는 대로 하나씩 뜹니다.... 어떤상황이라도 말이죠...