지난번 ActivityStack Standard에 이어서 SingleTop에 대해서 공부를 해 보았다.
SingleTop
이동하려는 액티비티가 이미 존재하는 경우 새로 만들지 않는다.
Standard때와 다르게 같은 액티비티로 이동하였을 때 액티비티를 새로 만들지 않는다.

시험을 위해 manifest에 activity_three를 SingleTop으로 선언해 주었다.

standard때와 마찬가지로 one -> two -> three로 이동하지만 three에서 three로 이동할 경우 화면이 한번 더 쌓이는 것은 아니다.
![]() |
![]() |
![]() |
![]() |
그렇기 때문에 standard때와는 다르게 화면을 뒤로 돌렸을때는 이러한 결과가 나온다.
액티비티 Three화면이 한번더 나오는 게 아닌 바로 Two로 이동하는 것을 알 수 있다.
![]() |
![]() |
![]() |
이번에는 화면을 One -> Three -> Two -> Three로 쌓아볼 것이다.
현재 ActivityThree만을 SingleTop으로 설정해 놓았는데 결과가 어떨지 한번 보자.
![]() |
![]() |
![]() |
![]() |
위의 화면에서 이제 화면을 하나씩 돌려 볼 것이다.
결과를 보면 Standard때의 때 처럼 결과가 달라지지 않는다.
이는 Three가 SingleTop 이지만 맨 마지막에 C를 호출할 때 이전 C가 탑에 있지 않기 때문에 새롭게 만들기 때문이다.
이 때문에 마지막 Three를 한 번더 호출하지 않는 경우에는 Standard를 따른다고 볼 수 있다.
![]() |
![]() |
![]() |
![]() |
'Android > 이론' 카테고리의 다른 글
| suspend 함수 (0) | 2025.05.20 |
|---|---|
| 안드로이드 액티비티 라이프 사이클 (0) | 2024.04.08 |
| NetWork(네트워크) (1) | 2023.11.23 |
| [안드로이드] Activity Stack(액티비티 스택) singleTask (2) | 2023.11.20 |
| [안드로이드] Activity Stack(액티비티 스택) Standard (0) | 2023.11.14 |















댓글