λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

λ…Έλ ₯을 μ΄κΈ°λŠ” 재λŠ₯은 μ—†κ³ 
λ…Έλ ₯을 μ™Έλ©΄ν•˜λŠ” 결과도 μ—†λ‹€.
- 이창호 9단

D E V E L O P M E N T/Android

[Andriod] μ‹€ν–‰ν•˜κ³  μžˆλŠ” 앱을 ν™ˆ ν™”λ©΄μœΌλ‘œ μ΄λ™ν–ˆλ‹€κ°€ λ‹€μ‹œ μ•±μœΌλ‘œ λŒμ•„μ™”μ„λ•Œ λ§ˆμ§€λ§‰ μ‹€ν–‰ν•˜λ˜ μ•± ν™”λ©΄ 보이게 ν•˜λŠ” 방법

  Junesker   2021. 7. 19.
λ°˜μ‘ν˜•

μ•± κ°œλ°œμ€‘μ— λ‘œκ·ΈμΈμ„ ν•˜κ³  νšŒμ›λͺ©λ‘μ—μ„œ νšŒμ›μ„ 선택 ν›„, 메인 μ‹œμŠ€ν…œμœΌλ‘œ μ ‘μ†ν•œ μƒνƒœμ—μ„œ μ—¬λŸ¬κ°€μ§€ μΌ€μ΄μŠ€λ₯Ό 진행 후에 μ•± 싀행을 λ°±κ·ΈλΌμš΄λ“œλ‘œ λŒμ•„κ°€κ²Œλ” ν™ˆ ν™”λ©΄μœΌλ‘œ 이동 후에 λ‹€μ‹œ 앱을 μ‹€ν–‰ν•˜λ©΄ 둜그인 ν™”λ©΄μœΌλ‘œ λŒμ•„κ°€λŠ” λ¬Έμ œκ°€ λ°œμƒν–ˆλ‹€. ν™ˆ ν™”λ©΄μœΌλ‘œ κ°”λ‹€κ°€ λ‹€μ‹œ 앱을 μ‹€ν–‰ν•˜κ²Œλ˜λ©΄ 보톡은 λ§ˆμ§€λ§‰μœΌλ‘œ μ‹€ν–‰ν•˜κ³  있던 μ•± 화면이 λ‚˜νƒ€λ‚˜μ•Ό ν•˜λŠ”λ° 그렇지 μ•Šμ•˜λ‹€. κ·Έλž˜μ„œ, λ§ˆμ§€λ§‰ μ•± 화면이 λ‚˜νƒ€λ‚  수 μžˆλ„λ‘ 생λͺ…주기와 연관지어 μ…‹νŒ…ν•΄λ³΄μ•˜λ‹€.

 

 

 

 

 

싀행쀑인 μ•± ν™ˆ ν™”λ©΄μ—μ„œ λ‹€μ‹œ μ•±μœΌλ‘œ λŒμ•„κ°”μ„λ•Œ,
λ§ˆμ§€λ§‰ μ‹€ν–‰ν•˜λ˜ μ•± ν™”λ©΄ 보이게 ν•˜λŠ” 방법

 

 

 

 

 

1.  AndroidManifest.xmlλ‚΄ ν•΄λ‹Ή μ—‘ν‹°λΉ„ν‹° 섀정을 λ³€κ²½ λ˜λŠ” μΆ”κ°€ν•œλ‹€.

 

AndroidManifest.xml μˆ˜μ •

android:launcMode="singleTop"

μž‘μ„±μžλŠ” 메인 Activityμ—μ„œ μ‹€ν–‰ν•˜λ˜ μ•± 화면이 λ‹€μ‹œ λ³΄μ—¬μ•Όν–ˆκΈ° λ•Œλ¬Έμ— 메인 μ•‘ν‹°λΉ„ν‹°μ—μ„œ 섀정을 μ§„ν–‰ν–ˆλ‹€. Activityμ„€μ • λ‚΄, android:launcModeλ₯Ό singleTop으둜 μ„€μ •ν•œλ‹€. ν•΄λ‹Ή 섀정값은 onPause() > onNewIntent() > onResume()으둜 생λͺ…μ£ΌκΈ°λ₯Ό μ΄λ™ν•œλ‹€.

 

 

 

 

 


LauncMode

μ•‘ν‹°λΉ„ν‹°λ₯Ό μ‹œμž‘ν•˜λŠ” 방법에 λŒ€ν•œ μ§€μΉ¨μž…λ‹ˆλ‹€. μΈν…νŠΈλ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ 택티비티λ₯Ό ν˜ΈμΆœν•  λ•Œ λ°œμƒν•˜λŠ” 것을 κ²°μ •ν•˜κΈ° μœ„ν•΄ Intentκ°μ²΄μ—μ„œ μ•‘ν‹°λΉ„ν‹° ν”Œλž˜κ·Έμ™€ ν•¨κ»˜ μž‘λ™ν•˜λŠ” 4개의 λͺ¨λ“œκ°€ μžˆλ‹€. κ·Έ λͺ¨λ“œλŠ” μ•„λž˜μ™€ κ°™λ‹€.

standard, singleTop, singleTask, singleInstance

κΈ°λ³Έ λͺ¨λ“œλŠ” standard이닀. LauncModeλŠ” λ‘κ°œμ˜ 그룹에 μ†ν•˜λŠ”λ° ν•œ 그룹은 standard와 singleTop이고 λ‹€λ₯Έ 그룹은 singleTask와 singleInstance이닀. standard와 singleTop은 μ‹œμž‘ λͺ¨λ“œλ₯Ό ν¬ν•¨ν•œ μ•‘ν‹°λΉ„ν‹°λŠ” μ—¬λŸ¬ 번 μΈμŠ€ν„΄μŠ€ν™”ν•  수 μžˆλ‹€. μΈμŠ€ν„΄μŠ€λŠ” 아무 μž‘μ—…μ— 속할 수 있으며 μ—‘ν‹°λΉ„ν‹° μŠ€νƒμ˜ 아무 μž₯μ†Œμ— μœ„μΉ˜ ν•  수 μžˆλ‹€. λ‹€λ₯Έ 그룹에 μ†ν•˜λŠ” singleTask와 singleInstanceλŠ” μ•‘ν‹°λΉ„ν‹° 단일 μž‘μ—…λ§Œ μ‹œμž‘ν•  수 μžˆλ‹€. ν•΄λ‹Ή μ—‘ν‹°λΉ„ν‹°λŠ” 항상 μ•‘ν‹°λΉ„ν‹° μŠ€νƒμ˜ λ£¨νŠΈμ— μžˆλ‹€. λ˜ν•œ κΈ°κΈ°λŠ” ν•œλ²ˆμ— 단일 μ•‘ν‹°λΉ„ν‹° μΈμŠ€ν„΄μŠ€λ§Œ μœ μ§€ν•  수 μžˆλ‹€.

 

μ—¬κΈ°μ„œ standard와 singleTopμ•‘ν‹°λΉ„ν‹°λŠ” ν•΄λ‹Ή μΈμŠ€ν„΄νŠΈκ°€ μƒˆ μΈν…νŠΈλ₯Ό μˆ˜μ‹ ν•˜κ²Œ 되면 μƒˆ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜μ§€ μ•ŠλŠ”λ‹€. 그리고, λ‹€λ₯Έ 그룹에 속해 μžˆλŠ” singleTask와 singleInstanceλŠ” νŠΉμˆ˜ν•œ μ‹œμž‘μœΌλ‘œ 일반적 μš©λ„μ—λŠ” ꢌμž₯ν•˜μ§€ μ•ŠλŠ”λ°, μ‹€μ œλ‘œ μ•ˆλ“œλ‘œμ΄λ“œ λ””λ²¨λ‘œνΌμ—μ„œλ„ λŒ€λΆ€λΆ„μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ ν•©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€λΌκ³  빨간색 κ°•μ‘°λ‘œ μœ μ˜ν•˜κ³  μžˆλ‹€.

Android Developers μ°Έκ³ ν–ˆμŠ΅λ‹ˆλ‹€.

 

 

 

 

 

λ°˜μ‘ν˜•

λŒ“κΈ€