관리 메뉴

Welcome! Everything is fine.

[Android] μ•ˆλ“œλ‘œμ΄λ“œ μ•±μ˜ κ΅¬μ„±μš”μ†Œ, ν™”λ©΄(μ•‘ν‹°λΉ„ν‹°) μ „ν™˜ν•˜κΈ° λ³Έλ¬Έ

Android

[Android] μ•ˆλ“œλ‘œμ΄λ“œ μ•±μ˜ κ΅¬μ„±μš”μ†Œ, ν™”λ©΄(μ•‘ν‹°λΉ„ν‹°) μ „ν™˜ν•˜κΈ°

개발곰발 2022. 3. 9.
728x90

πŸ“Œ μ•ˆλ“œλ‘œμ΄λ“œ μ•±μ˜ κ΅¬μ„±μš”μ†Œ

앱은 μ—¬λŸ¬ ν™”λ©΄μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλŠ”λ°, κ·Έ 화면을 μ•‘ν‹°λΉ„ν‹°(ACtovoty)둜 κ΅¬ν˜„ν•œλ‹€. 화면을 λ„μš°κ±°λ‚˜ λ‹«λŠ” 과정이 μ•‘ν‹°λΉ„ν‹°λ₯Ό μ „ν™˜ν•˜λŠ” 과정이닀. 앱을 λ§Œλ“€μ–΄ 단말에 μ„€μΉ˜ν–ˆμ„ λ•Œ, μ•ˆλ“œλ‘œμ΄λ“œ μ‹œμŠ€ν…œμ€ μ•„λž˜ λ„€ 가지 μš”μ†Œμ— λŒ€ν•œ 정보λ₯Ό μš”κ΅¬ν•œλ‹€.

  • μ•‘ν‹°λΉ„ν‹°(Activity)
  • μ„œλΉ„μŠ€(Service)
  • λΈŒλ‘œλ“œμΊμŠ€νŠΈ μˆ˜μ‹ μž(Broadcast Receiver)
  • λ‚΄μš© 제곡자(Content Provider)

이 정보듀은 ν”„λ‘œμ νŠΈλ₯Ό λ§Œλ“€λ©΄ μžλ™μœΌλ‘œ μƒκΈ°λŠ” AndroidManifest.xml νŒŒμΌμ— λ‹΄κ²¨μžˆλ‹€. κ·Έ 외에도 앱에 λŒ€ν•œ λ‹€μ–‘ν•œ 정보듀이 AndroidManifest.xml νŒŒμΌμ— λ‹΄κ²¨μžˆλ‹€. 이 νŒŒμΌμ— <activity> νƒœκ·Έλ‘œ μƒˆ μ•‘ν‹°λΉ„ν‹° 정보λ₯Ό μΆ”κ°€ν•΄μ•Ό μ‹œμŠ€ν…œμ΄ μƒˆ 앑티비티에 λŒ€ν•œ 정보λ₯Ό μ•Œ 수 μžˆλ‹€.

πŸ“Œ ν™”λ©΄ μ „ν™˜ν•˜κΈ°

startActivity

startActivity(Intent intent)

λ‹¨μˆœνžˆ μ•‘ν‹°λΉ„ν‹°λ₯Ό λ„μ›Œ 화면에 보이도둝 λ§Œλ“œλŠ” λ©”μ„œλ“œμ΄λ‹€.

startActivityForResult

startActivityForResult(Intent intent, int requestCode)

μ–΄λ–€ μ•‘ν‹°λΉ„ν‹°λ₯Ό λ„μš΄ 것인지 κ΅¬λ³„ν•˜κ±°λ‚˜, λ„μ› λ˜ μ•‘ν‹°λΉ„ν‹°λ‘œλΆ€ν„° λ‹€μ‹œ μ›λž˜μ˜ μ•‘ν‹°λΉ„ν‹°λ‘œ λŒμ•„μ˜€λ©΄μ„œ 응닡을 λ°›μ•„ μ²˜λ¦¬ν•˜λŠ” μ½”λ“œκ°€ ν•„μš”ν•  λ•Œ μ“°λŠ” λ©”μ„œλ“œμ΄λ‹€. κ·ΈλŸ¬λ‚˜ ν˜„μž¬ deprecatedλ˜μ—ˆλ‹€. μ±…μ—λŠ” 이 λ©”μ„œλ“œλ₯Ό μ“°κ³  μžˆλŠ”λ°..κ·Έλž˜μ„œ 예제λ₯Ό μ‹€μŠ΅ν•˜λŠ”λ° μ‹œκ°„μ΄ 더 κ±Έλ Έλ‹€.

ActivityResultLauncher

startActivityForResult λŒ€μ‹  μ“°λŠ” λ©”μ„œλ“œμ΄λ‹€. ActivityResultLauncher 객체λ₯Ό λ§Œλ“  ν›„  launch(Intent intent)λ₯Ό ν˜ΈμΆœν•œλ‹€.

μ•‘ν‹°λΉ„ν‹° μΆ”κ°€, μš”μ²­, 응닡 κ³Όμ •

μƒˆλ‘œμš΄ μ•‘ν‹°λΉ„ν‹°λ₯Ό λ§Œλ“€μ–΄ μΆ”κ°€ν•˜κ³  μ„œλ‘œ κ°„μ˜ μƒνƒœ μ½”λ“œλ‚˜ 데이터λ₯Ό μ£Όκ³ λ°›λŠ” 과정은 λ‹€μŒκ³Ό κ°™λ‹€.

  1. μƒˆλ‘œμš΄ μ•‘ν‹°λΉ„ν‹° λ§Œλ“€κΈ°
  2. μƒˆλ‘œμš΄ μ•‘ν‹°λΉ„ν‹°μ˜ XML λ ˆμ΄μ•„μ›ƒ μ •μ˜ν•˜κΈ°
  3. 메인 μ•‘ν‹°λΉ„ν‹°μ—μ„œ μƒˆλ‘œμš΄ μ•‘ν‹°λΉ„ν‹° λ„μš°κΈ°
  4. μƒˆλ‘œμš΄ μ•‘ν‹°λΉ„ν‹°μ—μ„œ 응닡 보내기
  5. 응닡 μ²˜λ¦¬ν•˜κΈ°

두 개의 μ•‘ν‹°λΉ„ν‹° μ „ν™˜

κΈ°λ³Έ 앑티비티인 MainACtivity 외에 MenuActivityλ₯Ό λ§Œλ“€μ–΄ 두 개의 μ•‘ν‹°λΉ„ν‹°λ₯Ό μ „ν™˜ν•˜λŠ” 예제λ₯Ό λ§Œλ“€μ—ˆλ‹€. 앱을 μ‹€ν–‰ν•œ κ²°κ³ΌλŠ” λ‹€μŒκ³Ό κ°™λ‹€. '메뉴 ν™”λ©΄ λ„μš°κΈ°' λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ μ™Όμͺ½κ³Ό 같은 μ•Œλ¦Όμ°½μ΄ 뜨고, 'λŒμ•„κ°€κΈ°' λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ κΈ°μ‘΄ ν™”λ©΄μœΌλ‘œ λ‹€μ‹œ λŒμ•„κ°„λ‹€.