[ANDROID] λ°± μŠ€νƒμ— λŒ€ν•œ 이해
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 3. 14. 00:16

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

[ANDROID] μ•‘ν‹°λΉ„ν‹° μƒνƒœ λ³€κ²½
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 3. 12. 23:00

κ°œμš” μ•‘ν‹°λΉ„ν‹°μ˜ μƒνƒœμ— λŒ€ν•΄ μ΄ν•΄ν•œλ‹€. μ•‘ν‹°λΉ„ν‹°μ˜ μƒνƒœ 변경을 μœ λ°œν•˜λŠ” μ΄λ²€νŠΈμ— λŒ€ν•΄ νŒŒμ•…ν•œλ‹€. μ•‘ν‹°λΉ„ν‹°μ˜ μƒνƒœ 변경이 일어났을 λ•Œμ˜ λ³€ν™”λ₯Ό μ΄ν•΄ν•œλ‹€. μ•‘ν‹°λΉ„ν‹° κ΅¬μ„±μ˜ λ³€κ²½ μ•‘ν‹°λΉ„ν‹°μ˜ ꡬ성이 λ³€ν•  수 μžˆλŠ” μ—¬λŸ¬ μ΄λ²€νŠΈκ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. μ•„λ§ˆλ„ κ°€μž₯ 많이 μΌμ–΄λ‚˜λŠ” μ˜ˆλ‘œλŠ” μ„Έλ‘œ λͺ¨λ“œμ™€ κ°€λ‘œ λͺ¨λ“œκ°„ λ°©ν–₯ 변화일 κ²ƒμž…λ‹ˆλ‹€. λ§Œμ•½ ꡬ성변경이 λ°œμƒν•˜λ©΄ μ•‘ν‹°λΉ„ν‹°λŠ” 제거되고 μ™„μ „νžˆ μƒˆλ‘œ μƒμ„±λ©λ‹ˆλ‹€. 즉, onPause(), onStop() 및 onDestory() 콜백 λ©”μ„œλ“œκ°€ 호좜이 λ˜λŠ”λ° μ΄λŸ¬ν•œ 상황이 μΌμ–΄λ‚˜λ©΄ μœ μ§€λ˜κ³  있던 UI μƒνƒœλ₯Ό μ™„μ „νžˆ μžƒκ²Œ λ©λ‹ˆλ‹€. UI μƒνƒœλ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” ViewModel, onSaveInstanceState() λ©”μ„œλ“œ λ˜λŠ” 영ꡬ 둜컬 μ €μž₯μ†Œμ˜ 쑰합을 ν™œμš©ν•΄μ•Όλ§Œ ν•©λ‹ˆλ‹€. μ–΄λ– ν•œ 방법을..

[ANDROID] λ ˆμ΄μ•„μ›ƒ
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 3. 10. 23:33

κ°œμš” λ ˆμ΄μ•„μ›ƒμ΄ 무엇인지 μ΄ν•΄ν•œλ‹€. λ ˆμ΄μ•„μ›ƒμ˜ 전체적인 흐름에 λŒ€ν•΄ μ΄ν•΄ν•œλ‹€. AdapterView와 Adapterκ°€ μ™œ ν•„μš”ν•œμ§€ μ΄ν•΄ν•œλ‹€. λ ˆμ΄μ•„μ›ƒμ΄λž€ λ¬΄μ—‡μΌκΉŒ? λ ˆμ΄μ•„μ›ƒμ€ μ•±μ—μ„œ μ‚¬μš©μž UIλ₯Ό μœ„ν•œ ꡬ쑰λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. λ ˆμ΄μ•„μ›ƒμ˜ λͺ¨λ“  μš”μ†ŒλŠ” View와 ViewGroupλ₯Ό 상속받아 λΉŒλ“œλ©λ‹ˆλ‹€. 일반적으둜 ViewλŠ” μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš©ν•  수 μžˆλŠ” 것듀을 그리며 ViewGroup은 View와 λ‹€λ₯Έ ViewGroup 객체의 λ ˆμ΄μ•„μ›ƒ ꡬ쑰λ₯Ό μ •μ˜ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ λ°•μŠ€ μž…λ‹ˆλ‹€. View κ°μ²΄λŠ” 'μœ„μ ―'이라고 ν•˜κ³  ViewGroup κ°μ²΄λŠ” 'λ ˆμ΄μ•„μ›ƒ'이라고 λΆ€λ¦…λ‹ˆλ‹€. ViewλŠ” μ—¬λŸ¬ ν•˜μœ„ 클래슀 쀑 ν•˜λ‚˜κ°€ 될 수 있으며, ViewGroup은 λ‹€μ–‘ν•œ λ ˆμ΄μ•„μ›ƒ ꡬ쑰λ₯Ό μ œκ³΅ν•˜λŠ” μ—¬λŸ¬ μ’…λ₯˜μ˜ λ ˆμ΄μ•„μ›ƒ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. λ ˆμ΄μ•„μ›ƒ..

[ANDROID] μ•ˆλ“œλ‘œμ΄λ“œ 4λŒ€ μ»΄ν¬λ„ŒνŠΈ
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 2. 26. 00:38

μ•ˆλ“œλ‘œμ΄λ“œ 4λŒ€ μ»΄ν¬λ„ŒνŠΈλž€? 4λŒ€ μ»΄ν¬λ„ŒνŠΈλŠ” μ•ˆλ“œλ‘œμ΄λ“œ μ•±μ˜ ν•„μˆ˜μ μΈ κΈ°λ³Έ ꡬ성 μš”μ†Œμž…λ‹ˆλ‹€. 각 ꡬ성 μš”μ†ŒλŠ” μ‚¬μš©μžλ“€μ΄ μ•±μœΌλ‘œ λ“€μ–΄μ˜¬ 수 μžˆλŠ” μ§„μž…μ μ΄λ©°, 4λŒ€ μ»΄ν¬λ„ŒνŠΈλŠ” 크게 μ•‘ν‹°λΉ„ν‹°, μ„œλΉ„μŠ€, Broadcast Receiver, μ½˜ν…μΈ  제곡자둜 이루어져 μžˆμŠ΅λ‹ˆλ‹€. 각 μ»΄ν¬λ„ŒνŠΈλ“€μ€ 각기 λšœλ ·ν•œ λͺ©μ μ„ μˆ˜ν–‰ν•˜κ³ , μžκΈ°λ“€λ§Œμ˜ 수λͺ… μ£ΌκΈ°κ°€ μ‘΄μž¬ν•˜μ—¬ κ°œλ°œμžκ°€ 생성 및 μ†Œλ©Έ 방식을 직접 μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ•‘ν‹°λΉ„ν‹° μ•‘ν‹°λΉ„ν‹°λŠ” μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš©ν•˜κΈ° μœ„ν•œ μ§„μž…μ μž…λ‹ˆλ‹€. μ•‘ν‹°λΉ„ν‹°λŠ” UIκ°€ ν¬ν•¨λœ ν™”λ©΄ ν•˜λ‚˜λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. μ—¬λŸ¬ μ•‘ν‹°λΉ„ν‹°κ°€ λͺ¨μ—¬μ„œ μ‚¬μš©μžμ—κ²Œ ν•˜λ‚˜μ˜ 앱을 μ œκ³΅ν•˜μ§€λ§Œ, λͺ¨λ“  μ•‘ν‹°λΉ„ν‹°λŠ” 각자 μ„œλ‘œ λ…λ¦½λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 이유 λ•Œλ¬Έμ— λͺ¨λ°”일 μ•±μ—μ„œ λ‹€λ₯Έ λͺ¨λ°”일 앱이 ν—ˆμš©μ„ ν•œλ‹€λ©΄ κ·Έ 앱이 μ†Œμœ ν•œ μ•‘ν‹°λΉ„ν‹°λ₯Ό..

[ANDROID] μ•‘ν‹°λΉ„ν‹° 생λͺ…μ£ΌκΈ°
μ•ˆλ“œλ‘œμ΄λ“œ 2020. 2. 25. 20:54

Android Activity Life Cycleμ΄λž€? Android의 4λŒ€ μ»΄ν¬λ„ŒνŠΈ 쀑 ν•˜λ‚˜μΈ μ•‘ν‹°λΉ„ν‹°λŠ” μ‚¬μš©μžμ—κ²Œ UIλ₯Ό 보여주고, μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš©μ„ μ£Όλ„ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ μž…λ‹ˆλ‹€. Android의 μ•‘ν‹°λΉ„ν‹°λŠ” 고유의 Life Cycle을 톡해 μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš©μ„ ν•˜κΈ°λ„ ν•˜κ³ , λ°±κ·ΈλΌμš΄λ“œλ‘œ μˆ¨κΈ°λ„ ν•˜λ©°, λ‹€λ₯Έ 앑티비티와 μƒν˜Έμž‘μš©μ„ μ§„ν–‰ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ‚¬μš©μžμ˜ 행동에 λ§žλŠ” μ•‘ν‹°λΉ„ν‹°μ˜ 행동을 ν›Œλ₯­ν•˜κ²Œ κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄μ„œλŠ” κ°œλ°œμžλŠ” μ•‘ν‹°λΉ„ν‹°μ˜ Life Cycle에 λŒ€ν•΄ ν™•μ‹€ν•˜κ²Œ μ΄ν•΄ν•˜κ³  μžˆμ–΄μ•Όλ§Œ ν•©λ‹ˆλ‹€. Activity Life Cycle의 흐름 Activity Life Cycle은 일반적으둜 onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> on..