[ANDROID] λ°± μŠ€νƒμ— λŒ€ν•œ 이해

κ°œμš” 

  1. Task에 λŒ€ν•΄ μ΄ν•΄ν•œλ‹€.
  2. Task와 μ•‘ν‹°λΉ„ν‹°μ™€μ˜ 관계에 λŒ€ν•΄ μ΄ν•΄ν•œλ‹€.
  3. λ°± μŠ€νƒμ˜ λ™μž‘μ— λŒ€ν•΄ μ΄ν•΄ν•œλ‹€.

Task, Activity, λ°± μŠ€νƒ


TaskλŠ” μ‚¬μš©μžκ°€ νŠΉμ • μž‘μ—…μ„ ν•  λ•Œ μƒν˜Έμž‘μš©ν•˜λŠ” Activity의 μ§‘ν•©μž…λ‹ˆλ‹€. ν•˜λ‚˜μ˜ Taskμ—λŠ” μ•‘ν‹°λΉ„ν‹° 집합을 μ—΄λ¦° μˆœμ„œλŒ€λ‘œ μ •λ ¬ν•΄λ†“λŠ” λ°± μŠ€νƒμ΄ μ‘΄μž¬ν•©λ‹ˆλ‹€. λ°± μŠ€νƒμ€ Stack의 μ„±μ§ˆμ„ 가지고 있으며 κ°€μž₯ μ΅œμ‹ μ— μ—΄λ¦° μ•‘ν‹°λΉ„ν‹°κ°€ κ°€μž₯ λ§¨μœ„λ‘œ μœ„μΉ˜ν•˜κ²Œ λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄μ„œ 이메일 μ•±μ—λŠ” μƒˆ λ©”μ‹œμ§€ λͺ©λ‘μ„ ν‘œμ‹œν•˜λŠ” μ•‘ν‹°λΉ„ν‹°κ°€ μ‘΄μž¬ν•˜κ³ , μ‚¬μš©μžκ°€ λ©”μ‹œμ§€ λͺ©λ‘μ—μ„œ λ©”μ‹œμ§€λ₯Ό ν•˜λ‚˜ ν΄λ¦­ν•˜λ©΄ λ©”μ‹œμ§€μ˜ λ‚΄μš©μ„ μƒμ„Έν•˜κ²Œ λ³Ό 수 μžˆλ„λ‘ μƒˆλ‘œμš΄ μ•‘ν‹°λΉ„ν‹°κ°€ μ—΄λ¦¬κ²Œ λ©λ‹ˆλ‹€. μ΄λ•Œ λ©”μ‹œμ§€ 상세보기 μ•‘ν‹°λΉ„ν‹°λŠ” λ°± μŠ€νƒμ— μΆ”κ°€λ˜λ©°, λ§Œμ•½μ— μ‚¬μš©μžκ°€ λ’€λ‘œκ°€κΈ° λ²„νŠΌμ„ νƒ­ν•˜λ©΄ λ©”μ‹œμ§€ 상세보기 μ•‘ν‹°λΉ„ν‹°λŠ” λ°± μŠ€νƒμ—μ„œ popλ©λ‹ˆλ‹€. 

λ°± μŠ€νƒμ˜ κΈ°λ³Έ 흐름


λ°± μŠ€νƒ 흐름도

기기의 ν™ˆ 화면은 λŒ€λΆ€λΆ„μ˜ Task듀이 μ‹œμž‘λ˜λŠ” μœ„μΉ˜μž…λ‹ˆλ‹€. μ‚¬μš©μžκ°€ μ•± 런처의 μ•„μ΄μ½˜μ„ νƒ­ν•˜λ©΄ ν•΄λ‹Ή μ•±μ˜ Taskκ°€ ν¬κ·ΈλΌμš΄λ“œλ‘œ λ‚˜μ˜€κ²Œ λ©λ‹ˆλ‹€. λ§Œμ•½, λ°±κ·ΈλΌμš΄λ“œμ— ν•΄λ‹Ή μ•±μ˜ Taskκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ μƒˆλ‘œμš΄ Taskκ°€ μƒμ„±λ˜κ³  이 μ•±μ˜ MainActivityκ°€ λ°± μŠ€νƒμ˜ 루트 μ•‘ν‹°λΉ„ν‹°λ‘œ μ—΄λ¦¬κ²Œ λ©λ‹ˆλ‹€. 

 

ν˜„μž¬ μ•‘ν‹°λΉ„ν‹°κ°€ 또 λ‹€λ₯Έ μ•‘ν‹°λΉ„ν‹°λ₯Ό μ‹œμž‘ν•˜λ©΄ μƒˆ μ•‘ν‹°λΉ„ν‹°κ°€ λ°± μŠ€νƒ 맨 μœ„μ— ν‘Έμ‹œλ˜κ³  포컀슀λ₯Ό κ°–κ²Œ λ©λ‹ˆλ‹€. 이전 μ•‘ν‹°λΉ„ν‹°λŠ” μŠ€νƒμ— λ‚¨μ•„μžˆμ§€λ§Œ 쀑지됨 μƒνƒœλ₯Ό κ°–κ²Œ λ©λ‹ˆλ‹€. μ•‘ν‹°λΉ„ν‹°κ°€ μ€‘μ§€λ˜λ©΄ μ‹œμŠ€ν…œμ€ UI의 μƒνƒœλ₯Ό λ³΄μ‘΄ν•©λ‹ˆλ‹€. λ§Œμ•½ μ‚¬μš©μžκ°€ λ’€λ‘œκ°€κΈ° λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ ν˜„μž¬ μ•‘ν‹°λΉ„ν‹°κ°€ pop되고, 이전 μ•‘ν‹°λΉ„ν‹°κ°€ UI의 μƒνƒœλ₯Ό μœ μ§€ν•œμ±„λ‘œ μ‹œμž‘λ©λ‹ˆλ‹€. μŠ€νƒμ˜ μ•‘ν‹°λΉ„ν‹°λŠ” μ ˆλŒ€λ‘œ λ‹€μ‹œ μ •λ ¬λ˜μ§€ μ•ŠμœΌλ©°, μ΄λŸ¬ν•œ μ„±μ§ˆμ„ 계속 μœ μ§€ν•˜κ²Œ λ©λ‹ˆλ‹€.

 

μ‚¬μš©μžκ°€ 계속 λ’€λ‘œ λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ 계속 이전 μ•‘ν‹°λΉ„ν‹°κ°€ λ‚˜νƒ€λ‚˜λ©°, λ§Œμ•½ λͺ¨λ“  μ•‘ν‹°λΉ„ν‹°κ°€ μŠ€νƒμ—μ„œ μ‚­μ œλ˜λ©΄ TaskλŠ” 더 이상 μ‘΄μž¬ν•˜μ§€ μ•Šκ²Œ λ©λ‹ˆλ‹€. μ‚¬μš©μžκ°€ μƒˆ Taskλ₯Ό μ‹œμž‘ν•˜κ±°λ‚˜ ν™ˆ λ²„νŠΌμ„ 톡해 ν™ˆ ν™”λ©΄μœΌλ‘œ 이동할 λ•Œ ν˜„μž¬ TaskλŠ” ν†΅μ§Έλ‘œ λ°±κ·ΈλΌμš΄λ“œλ‘œ μ΄λ™ν•©λ‹ˆλ‹€. Task의 λͺ¨λ“  μ•‘ν‹°λΉ„ν‹°λŠ” λ°±κ·ΈλΌμš΄λ“œμ— μžˆλŠ” λ™μ•ˆ λͺ¨λ‘ μ€‘μ§€λ˜μ§€λ§Œ, Task의 λ°± μŠ€νƒμ€ κ·ΈλŒ€λ‘œ μœ μ§€λ©λ‹ˆλ‹€. 이후에 Taskκ°€ λ‹€μ‹œ ν¬κ·ΈλΌμš΄λ“œλ‘œ λŒμ•„κ°€κ²Œ 되면 λ°± μŠ€νƒμ΄ μœ μ§€ λ˜μ–΄μžˆκΈ°μ— μ‚¬μš©μžλŠ” μŠ€νƒμ˜ κ°€μž₯ 상단에 μžˆλŠ” μ•‘ν‹°λΉ„ν‹°λ₯Ό κ·ΈλŒ€λ‘œ μ΄μ–΄λ‚˜κ°ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

μ°Έκ³ )
μ—¬λŸ¬ Taskλ₯Ό λ™μ‹œμ— λ°±κ·ΈλΌμš΄λ“œμ— μœ μ§€ν•  수 μžˆμ§€λ§Œ, μ‹œμŠ€ν…œμ΄ λ©”λͺ¨λ¦¬λ₯Ό ν™•λ³΄ν•˜κΈ° μœ„ν•΄ κ°•μ œλ‘œ μ•‘ν‹°λΉ„ν‹°μ˜ 제거λ₯Ό μ‹œμž‘ν•  수 있으며, 이둜 μΈν•΄μ„œ μ•‘ν‹°λΉ„ν‹° μƒνƒœκ°€ 손싀될 수 μžˆμŠ΅λ‹ˆλ‹€.

λ°±μŠ€νƒμ˜ λ™μž‘ 관리


가끔은 λ°±μŠ€νƒμ˜ 정상적인 λ™μž‘μ„ λ³€κ²½μ‹œμΌœμ•Όν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 에λ₯Ό λ“€μ–΄ μ•±μ˜ μ•‘ν‹°λΉ„ν‹°κ°€ μ‹œμž‘λ  λ•Œ ν˜„μž¬ Task 내에 λ°°μΉ˜λ˜μ§€ μ•Šκ³  μƒˆ Taskκ°€ μ‹œμž‘λ˜λ„λ‘ ν•  수 있으며 λ˜λŠ” μ•‘ν‹°λΉ„ν‹°κ°€ μ‹œμž‘λ  λ•Œ λ°± μŠ€νƒμ˜ 맨 μœ„μ— μƒˆ μΈμŠ€ν„΄μŠ€κ°€ μƒμ„±λ˜λŠ” λŒ€μ‹  ν•΄λ‹Ή μ•‘ν‹°λΉ„ν‹°μ˜ κΈ°μ‘΄ μΈμŠ€ν„΄μŠ€κ°€ μ•žμœΌλ‘œ λ‚˜μ˜€λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜λŠ” μ‚¬μš©μžκ°€ Taskλ₯Ό λ– λ‚  λ•Œ 루트 μ•‘ν‹°λΉ„ν‹°λ₯Ό μ œμ™Έν•œ λͺ¨λ“  μ•‘ν‹°λΉ„ν‹°κ°€ λ°± μŠ€νƒμ—μ„œ μ œκ±°λ˜λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

λ°±μŠ€νƒμ˜ λ™μž‘μ„ μ •μ˜ν•˜κΈ° μœ„ν•΄μ„œλŠ” 두가지 λ°©λ²•μœΌλ‘œ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 

manifest 파일 μ‚¬μš©

manifest νŒŒμΌμ—μ„œ μ•‘ν‹°λΉ„ν‹°λ₯Ό μ„ μ–Έν•  λ•Œ <activity> μš”μ†Œμ˜ launchMode 속성을 μ‚¬μš©ν•˜μ—¬ μ•‘ν‹°λΉ„ν‹°κ°€ Task와 μ–΄λ–»κ²Œ μ—°κ²°λ˜λŠ”μ§€μ— λŒ€ν•΄ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. 

  • "standard"

κΈ°λ³Έκ°’μž…λ‹ˆλ‹€. μ‹œμŠ€ν…œμ€ μ•‘ν‹°λΉ„ν‹°κ°€ μ‹œμž‘λœ Task에 μ•‘ν‹°λΉ„ν‹°μ˜ μƒˆ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κ³  μΈν…νŠΈλ₯Ό ν•΄λ‹Ή μΈμŠ€ν„΄μŠ€λ‘œ λΌμš°νŒ…ν•©λ‹ˆλ‹€. μ•‘ν‹°λΉ„ν‹°λŠ” μ—¬λŸ¬ 번 μΈμŠ€ν„΄μŠ€ν™”λ  수 μžˆμŠ΅λ‹ˆλ‹€.

  • "singleTop"

μ•‘ν‹°λΉ„ν‹°μ˜ μΈμŠ€ν„΄μŠ€κ°€ ν˜„μž¬ Task의 λ°± μŠ€νƒ 맨 μœ„μ— 있으면 μ‹œμŠ€ν…œμ€ μ•‘ν‹°λΉ„ν‹°μ˜ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜μ§€ μ•Šκ³  μΈν…νŠΈλ₯Ό κΈ°μ‘΄ μΈμŠ€ν„΄μŠ€(맨 μœ„μ— μžˆλŠ”)둜 λΌμš°νŒ…ν•©λ‹ˆλ‹€. μ•‘ν‹°λΉ„ν‹°λŠ” μ—¬λŸ¬ 번 μΈμŠ€ν„΄μŠ€ν™”λ  수 있고, μ—¬λŸ¬ Taskλ‚˜ ν•œ Task에 μ—¬λŸ¬ μΈμŠ€ν„΄μŠ€κ°€ μ‘΄μž¬ν•  수 μžˆμ§€λ§Œ λ§Œμ•½ λ°± μŠ€νƒ 맨 μœ„μ— λ™μΌν•œ μ•‘ν‹°λΉ„ν‹°κ°€ μ‘΄μž¬ν•œλ‹€λ©΄ μƒˆ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

  • "singleTask"

μ•‘ν‹°λΉ„ν‹°μ˜ μΈμŠ€ν„΄μŠ€κ°€ 이미 λ³„λ„μ˜ Task에 μžˆλ‹€λ©΄ μ‹œμŠ€ν…œμ€ μƒˆ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜μ§€ μ•Šκ³  κΈ°μ‘΄ μΈμŠ€ν„΄μŠ€λ‘œ λΌμš°νŒ…ν•©λ‹ˆλ‹€. 즉, μ•‘ν‹°λΉ„ν‹°μ˜ μΈμŠ€ν„΄μŠ€κ°€ ν•œ λ²ˆμ— ν•˜λ‚˜λ§Œ μ‘΄μž¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • "singleInstance" 

TaskλŠ” 무쑰건 단 ν•˜λ‚˜μ˜ μ•‘ν‹°λΉ„ν‹°λ§Œ 가지고 있게 λ©λ‹ˆλ‹€. 즉, 이 μ•‘ν‹°λΉ„ν‹°λ‘œ μ‹œμž‘λœ λͺ¨λ“  μ•‘ν‹°λΉ„ν‹°λŠ” λ³„λ„μ˜ Task둜 μ—΄λ¦¬κ²Œ λ©λ‹ˆλ‹€.

 

SingleTask μ˜ˆμ‹œ

μ•‘ν‹°λΉ„ν‹°κ°€ μƒˆ Taskμ—μ„œ μ‹œμž‘λ˜μ—ˆλ“  λ˜λŠ” μ•‘ν‹°λΉ„ν‹°κ°€ μ‹œμž‘λœ Task와 λ™μΌν•œ Taskμ—μ„œ μ‹œμž‘λ˜μ—ˆλ“  관계없이 μ‚¬μš©μžλŠ” λ’€λ‘œκ°€κΈ° λ²„νŠΌμ„ 톡해 항상 이전 μ•‘ν‹°λΉ„ν‹°λ‘œ λŒμ•„κ°ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ singleTask μ‹€ν–‰ λͺ¨λ“œλ₯Ό μ§€μ •ν•œ μ•‘ν‹°λΉ„ν‹°λ₯Ό μ‹œμž‘ν–ˆλŠ”λ° κ·Έλ•Œ μ•‘ν‹°λΉ„ν‹°μ˜ μΈμŠ€ν„΄μŠ€κ°€ λ°±κ·ΈλΌμš΄λ“œ Task에 μ‘΄μž¬ν•œλ‹€λ©΄ ν•΄λ‹Ή Task 전체가 ν¬κ·ΈλΌμš΄λ“œλ‘œ μ΄λ™ν•˜κ²Œ λ©λ‹ˆλ‹€.

μΈν…νŠΈ ν”Œλž˜κ·Έ μ‚¬μš© 

μ•‘ν‹°λΉ„ν‹°λ₯Ό μ‹œμž‘ν•  λ•Œ startActivity()에 μ „λ‹¬ν•˜λŠ” μΈν…νŠΈμ— ν”Œλž˜κ·Έλ₯Ό ν¬ν•¨ν•¨μœΌλ‘œμ¨ 앑티비티와 Task와 μ–΄λ–»κ²Œ 연결될지 지정해쀄 수 μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©ν•  수 μžˆλŠ” ν”Œλž˜κ·ΈλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 

  • "FLAG_ACTIVITY_NEW_TASK"

μ•‘ν‹°λΉ„ν‹°λ₯Ό μƒˆ Taskμ—μ„œ μ‹œμž‘ν•©λ‹ˆλ‹€. μ§€κΈˆ μ‹œμž‘ν•˜κ³  μžˆλŠ” 앑티비티에 λŒ€ν•΄ 이미 μ‹€ν–‰ 쀑인 Taskκ°€ μ‘΄μž¬ν•œλ‹€λ©΄ κ·Έ Task의 λ§ˆμ§€λ§‰ μƒνƒœκ°€ λ³΅μ›λ˜μ–΄ ν¬κ·ΈλΌμš΄λ“œλ‘œ μ΄λ™ν•˜κ³  μ•‘ν‹°λΉ„ν‹°λŠ” μƒˆ μΈν…νŠΈλ₯Ό μˆ˜μ‹ ν•©λ‹ˆλ‹€. 즉, "singleTask"와 λ™μΌν•œ λ™μž‘μ΄ λ°œμƒν•©λ‹ˆλ‹€.

  • "FLAG_ACTIVITY_SINGLE_TOP"

μ‹œμž‘ 쀑인 μ•‘ν‹°λΉ„ν‹°κ°€ λ°± μŠ€νƒμ˜ 맨 μœ„μ— μžˆλŠ” μ•‘ν‹°λΉ„ν‹°λ©΄ μƒˆ μΈμŠ€ν„΄μŠ€κ°€ μƒμ„±λ˜λŠ” λŒ€μ‹  κΈ°μ‘΄ μΈμŠ€ν„΄μŠ€κ°€ μΈν…νŠΈλ₯Ό μˆ˜μ‹ ν•©λ‹ˆλ‹€. 즉, "singleTop"κ³Ό λ™μΌν•œ λ™μž‘μ΄ λ°œμƒν•©λ‹ˆλ‹€.

  • "FLAG_ACTIVITY_CLEAR_TOP" 

μ‹œμž‘ 쀑인 μ•‘ν‹°λΉ„ν‹°κ°€ ν˜„μž¬ Taskμ—μ„œ 이미 μ‹€ν–‰ 쀑이면 μ•‘ν‹°λΉ„ν‹°μ˜ μƒˆ μΈμŠ€ν„΄μŠ€κ°€ μ‹€ν–‰λ˜λŠ” λŒ€μ‹  Task의 맨 μœ„μ— μžˆλŠ” λ‹€λ₯Έ λͺ¨λ“  μ•‘ν‹°λΉ„ν‹°κ°€ 제거되고 이미 μ‹€ν–‰ μ€‘μ΄λ˜ μ•‘ν‹°λΉ„ν‹°κ°€ 맨 μœ„λ‘œ μœ„μΉ˜ν•˜κ²Œ 되며, μΈν…νŠΈλ₯Ό μˆ˜μ‹ ν•˜κ²Œ λ©λ‹ˆλ‹€. 

 

Affinity 


μ–΄ν”Όλ‹ˆν‹°λŠ” μ•‘ν‹°λΉ„ν‹°κ°€ μ–΄λ– ν•œ μž‘μ—…μ— μ†Œμ†λ˜κΈ°λ₯Ό μ„ ν˜Έν•˜λŠ”μ§€λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 기본적으둜 λ™μΌν•œ μ•±μ˜ λͺ¨λ“  앑티비티듀은 λ™μΌν•œ μ–΄ν”Όλ‹ˆν‹°λ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ λ™μΌν•œ μ•±μ˜ λͺ¨λ“  앑티비티듀은 기본적으둜 λ™μΌν•œ Taskμ•ˆμ— μ†ν•˜κ²Œ λ©λ‹ˆλ‹€. κ°œλ°œμžλŠ” μ΄λŸ¬ν•œ μ•‘ν‹°λΉ„ν‹°μ˜ μ–΄ν”Όλ‹ˆν‹°λ₯Ό μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ„œλ‘œ λ‹€λ₯Έ 앱에 μ •μ˜λœ 앑티비티듀이 λ™μΌν•œ μ–΄ν”Όλ‹ˆν‹°λ₯Ό κ°€μ§ˆ 수 있으며, λ˜λŠ” λ™μΌν•œ 앱에 μ •μ˜λœ 앑티비티에 λŒ€ν•΄ λ‹€μ–‘ν•œ μ–΄ν”Όλ‹ˆν‹°λ₯Ό λΆ€μ—¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

μ–΄λ–€ μ•‘ν‹°λΉ„ν‹°λ“  <activity> μš”μ†Œμ˜ taskAffinity 속성을 톡해 μ–΄ν”Όλ‹ˆν‹°λ₯Ό μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή 속성은 λ¬Έμžμ—΄ 값을 μ‚¬μš©ν•˜λ©° 이 값은 κ³ μœ ν•΄μ•Όλ§Œ ν•©λ‹ˆλ‹€. μ‹œμŠ€ν…œμ΄ 이 이름을 μ΄μš©ν•˜μ—¬ μ–΄ν”Όλ‹ˆν‹°λ“€μ„ μ‹λ³„ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. μ–΄ν”Όλ‹ˆν‹°λŠ” λ‹€μŒκ³Ό 같은 두 가지 μƒν™©μ—μ„œ μž‘μš©ν•©λ‹ˆλ‹€.

  • "μ•‘ν‹°λΉ„ν‹°λ₯Ό μ‹€ν–‰ν•œ μΈν…νŠΈμ— FLAG_ACTIVITY_NEW_TASK ν”Œλž˜κ·Έκ°€ ν¬ν•¨λ˜μ–΄ μžˆμ„ 경우"

λ§Œμ•½ FLAG_ACTIVITY_NEW_TASKκ°€ ν¬ν•¨λ˜μ–΄ μžˆλ‹€λ©΄, μ‹œμŠ€ν…œμ€ μƒˆ μ•‘ν‹°λΉ„ν‹°λ₯Ό μˆ˜μš©ν•  λ‹€λ₯Έ Taskλ₯Ό μ°Ύκ²Œλ©λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ°˜λ“œμ‹œ μƒˆ Task일 ν•„μš”λŠ” μ—†μŠ΅λ‹ˆλ‹€. μƒˆ 앑티비티와 λ™μΌν•œ μ–΄ν”Όλ‹ˆν‹°λ₯Ό 가진 κΈ°μ‘΄ Taskκ°€ 이미 있으면 μ•‘ν‹°λΉ„ν‹°λŠ” κ·Έ Task둜 λ“€μ–΄κ°€κ²Œ λ©λ‹ˆλ‹€. λ§Œμ•½ μ–΄ν”Όλ‹ˆν‹°κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ μƒˆ Taskλ₯Ό μ‹œμž‘ν•©λ‹ˆλ‹€.

  • "μ•‘ν‹°λΉ„ν‹°μ˜ allowTaskReparenting 속성이 true둜 μ„€μ •λ˜μ–΄ μžˆμ„ λ•Œ "

allowTaskReparenting 속성은 μ•‘ν‹°λΉ„ν‹°κ°€ μžμ‹ μ΄ μ‹œμž‘λ˜λŠ” Taskμ—μ„œ λ²—μ–΄λ‚˜  λ™μΌν•œ μ–΄ν”Όλ‹ˆν‹°λ₯Ό 가진 λ‹€λ₯Έ Taskκ°€ ν¬κ·ΈλΌμš΄λ“œλ‘œ λ‚˜μ˜€λ©΄ κ·Έ μž‘μ—…μœΌλ‘œ 이동할 수 μžˆλŠ”μ§€μ— λŒ€ν•œ 속성인데, λ§Œμ•½ true일 경우 이동 κ°€λŠ₯ν•˜λ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.

 

 

Reference

https://developer.android.com/guide/components/activities/tasks-and-back-stack?hl=ko

 

μž‘μ—… 및 λ°± μŠ€νƒ 이해  |  Android 개발자  |  Android Developers

일반적으둜 μ•±μ—λŠ” μ—¬λŸ¬ ν™œλ™μ΄ ν¬ν•¨λ©λ‹ˆλ‹€. 각 ν™œλ™μ€ μ‚¬μš©μžκ°€ μ‹€ν–‰ν•  수 μžˆλŠ” νŠΉμ • μ’…λ₯˜μ˜ μž‘μ—…μ„ μ€‘μ‹¬μœΌλ‘œ μ„€κ³„λ˜μ–΄μ•Ό ν•˜λ©° λ‹€λ₯Έ ν™œλ™μ„ μ‹œμž‘ν•  수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 이메일 μ•±μ—λŠ” μƒˆ λ©”μ‹œμ§€ λͺ©λ‘μ„ ν‘œμ‹œν•˜λŠ” ν™œλ™μ΄ ν•˜λ‚˜ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€…

developer.android.com