Design-loving front-end engineer
Ryong
Design-loving front-end engineer
전체 방문자
오늘
어제
    • Framework
    • React
      • Concept
      • Library
      • Hook
      • Component
      • Test
    • NodeJS
    • Android
      • Concept
      • Code
      • Sunflower
      • Etc
    • Flutter
      • Concept
      • Package
    • Web
    • Web
    • CSS
    • Language
    • JavaScript
    • TypeScript
    • Kotlin
    • Dart
    • Algorithm
    • Data Structure
    • Programmers
    • Management
    • Git
    • Editor
    • VSCode
    • Knowledge
    • Voice
Design-loving front-end engineer

Ryong

[Android] [Kotlin] 인텐트
Android/Concept

[Android] [Kotlin] 인텐트

2021. 9. 12. 19:35

액티비티 테스크 관리하기

매니페스트에서 설정하기

launchMode

✔  호출할 액티비티를 새로 생성할 것인지 재사용할 것인지 결정

✔  기본값은 새로 생성하도록 설정되어 있음

✔  standard, singleTop, singleTask, singleInstance

 

taskAffinity

✔  affinity가 동일한 테스크는 같은 task에 들어간다.

✔  기본값이 manifest에 정의된 패키지명이므로 한 앱의 모든 액티비티들은 동일한 affinity를 갖는다.

 

allowTaskReparenting

✔  true로 설정할 경우, 호출한 액티비티를 동일한 affinity를 가진 테스크에 쌓이도록 한다.

✔  기본값은 false이다.

 

clearTaskOnLaunch

✔  true로 설정할 경우, 액티비티가 재실행될 때 실행된 액티비티의 수와 관계없이 메인 액티비티를 제외하고 모두 제거한다.

✔  기본값은 false이다.

 

alwaysRetainTaskState

✔  사용자가 특정 시간 동안 앱을 사용하지 않을 경우 시스템이 루트 액티비티를 제외한 액티비티들을 제거한다.

✔  기본값은 false이며, true일 경우 시스템이 관여하지 않는다.

✔  루트 액티비티 : 테스크에서 가장 먼저 실행된 액티비티

 

finishOnTaskLaunch

✔  앱을 다시 시작할 때, 테스크에 해당 옵션이 true인 액티비티가 있으면, 해당 테스크를 종료시킨다.

 

소스 코드에서 intent에 플래그 추가하기

val intent = Intent(this, SubActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

FLAG_ACTIVITY_CLEAR_TOP

✔  호출하는 액티비티가 스택에 있으면 해당 액티비티를 Top으로 만들기 위해 그 위에 존재하던 액티비티를 모두 삭제한다.

 

FLAG_ACTIVITY_NEW_TASK

✔  새로운 테스크를 생성하여 안에 액티비티를 추가할 때 사용한다.

✔  기존에 존재하는 테스크 중에 생성하려는 액티비티와 동일한 affinity를 가지고 있는 테스크가 있으면 해당 테스크로 액티비티가 들어간다.

 

FLAG_ACTIVITY_MULTIPLE_TASK

✔  FLAG_ACTIVITY_NEW_TASK와 함께 사용하며, 호출되는 액티비티를 메인으로 하는 새로운 테스크를 생성한다.

✔  해당 플래그를 사용할 경우, 동일한 액티비티를 하나 이상의 테스크에서 열 수 있다.

 

FLAG_ACTIVITY_SINGLE_TOP

✔  호출되는 액티비티가 Top에 있으면 해당 액티비티를 다시 생성하지 않고, 존재하던 액티비티를 다시 사용한다.

 

FLAG_ACTIVITY_NO_HISTORY

✔  액티비티가 스택에 쌓이지 않도록 한다. 주로 로딩화면 등에 사용한다.

 

FLAG_ACTIVITY_REORDER_TO_FRONT

✔  호출하려는 액티비티가 스택에 존재할 경우, Top으로 올려준다.

저작자표시

'Android > Concept' 카테고리의 다른 글

[Android] [Kotlin] SharedPreferences  (0) 2021.09.19
[Android] [Kotlin] SQLite  (0) 2021.09.14
[Android] [Kotlin] ViewPager (뷰페이저)  (0) 2021.09.13
[Android] [Kotlin] 생명주기  (0) 2021.09.12
[Android] [Kotlin] 리사이클러뷰  (0) 2021.09.01
    'Android/Concept' 카테고리의 다른 글
    • [Android] [Kotlin] SQLite
    • [Android] [Kotlin] ViewPager (뷰페이저)
    • [Android] [Kotlin] 생명주기
    • [Android] [Kotlin] 리사이클러뷰
    Design-loving front-end engineer
    Design-loving front-end engineer
    디자인에 관심이 많은 모바일 앱 엔지니어 Ryong입니다.

    티스토리툴바