태스크 관리

k_hyun·2023년 3월 1일
0

액티비티를 어떻게 생성하고 관리하는지를 제어하는 일을 의미한다.
시스템에는 기본 규칙이 있으나 특정 상황을 위해 설정을 추가할 수 있다.

액티비티 태스크

앱이 실행될 때 시스템에서 액티비티의 각종 정보를 저장하는 공간

AppFirst가 AppSecond와 연동된 상황을 예를 들자면
AppFirst에서 Main -> One -> Two 액티비티를 호출하고, AppSecond의 Two Activity를 호출한다면
AppFirst Task에 모든 액티비티들이 쌓이게 된다.

태스크 제어

액티비티 객체가 생성되고 태스크에 등록되는 2가지 제어 방식이 있다.

<--! 매니페스트 파일에서 launchMode로 제어 -->
<activity android:name=".TwoActivity" android:launchMode="mode">
// 코드에서 flags 속성으로 제어
val intent = Intent(this, TwoActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_MODE
startActivity(intent)

태스크 모드

standard

  • 설정하지 않은 기본값과 같다.

singleTop

  • 액티비티가 태스트 위쪽에 있으면 다른곳에서 인텐트로 실행해도 객체 생성 X
  • 그 대신 기존 객체의 onNewIntent()가 자동으로 호출된다.
  • 채팅방에서 알람을 통해 다른 채팅방으로 이동하는 액티비티에서 활용된다.

singleTask

  • 새로운 태스크가 생성되어 관리된다.

singleInstance

  • singleTask 와 같이 새로운 태스크가 생성되어 관리된다.
  • 단 혼자서 태스크 하나를 차지한다.

0개의 댓글