Develop/Android + Kotlin

[Android] 안드로이드 Activity 액티비티 클래스와 Intent 인텐트

마크투비 2021. 8. 25. 00:13

1. Activity란?

👉 액티비티(activity)는 사용자에게 UI가 있는 화면을 제공하는 앱 컴포넌트이다. 액티비티는 안드로이드 4대 컴포넌트 중 하나로, 앱의 가장 기본이 되는 구성 요소이다. 보통 앱은 하나 이상의 액티비티가 서로 연결된 형태로 구성된다. 

 

✔️ 안드로이드의 4대 컴포넌트

1. 액티비티: 화면 관리자

2. 서비스: 백그라운드 작업자

3. 콘텐트 프로바이더: 데이터 제공자

4. 브로드캐스트 리시버: 방송수신자

 

2. Activity의 수명주기(Life Cycle) developers 사이트 

메소드 설명 다음 메소드
onCreate() 액티비티가 생성될 때 단 한 번만 호출되며,
사용자 인터페이스 초기화에 사용됨.
onStart()
onRestart() 액티비티가 멈췄다가 다시 시작되기 바로 전에 호출됨. onStart()
onStart() 액티비티가 사용자에게 보여지기 바로 직전에 호출됨. onResume() 또는 onStop()
onResume() 다시 앱으로 돌아올 때 무조건 호출됨.
액티비티가 사용자와 상호작용하기 바로 전에 호출됨.
onPause()
onPause() 다른 액티비티가 보여질 때 호출됨.
데이터 저장, 스레드 중지 등의 처리를 하기에 적당한 메소드.
화면의 일부가 가려졌을 때.
onResume() 또는 onStop()
onStop() 액티비티가 더이상 사용자에게 보여지지 않을 때 호출됨.
메모리가 부족할 경우에는 onStop() 메소드가 호출되지 않을 수도 있음.
화면 전부가 보이지 않을 때.
onRestart() 또는 onDestroy()
onDestroy() 액티비티가 소멸될 때 호출됨. finish() 메소드가 호출되거나 시스템이 메모리 확보를 위해 액티비티를 제거할 때 호출됨. 없음

 

출처 : https://kairo96.gitbooks.io/android/content/ch2.4.1.html 

 

3. Intent 인텐트

👉 인텐트는 안드로이드의 컴포넌트 간의 통신을 맡고 있다. 인텐트는 '요청', 인텐트를 보내는 것은 '요청을 보낸다'라는 의미로 이해하면 좋다.

 

요청의 종류는 두 가지가 있다.

1) 전달만 하는 요청

2) 전달한 후에 리턴을 받는 요청

 

인텐트를 사용하는 세 가지 경우는 다음과 같다.

1) Activity와 Activity

2) Android System과 내 App (전화)

3) 다른 App과 내 App (결제)

 

인텐트의 종류에는 두 가지가 있다.

1) 명시적인 인텐트(Explicit intent): 호출할 대상 컴포넌트가 분명히 명시되어 있는 인텐트

2) 암시적인 인텐트(Implicit intent): 호출 대상이 명확하게 정의되어 있지 않은 인텐트로, 암시적 인텐트를 사용하면 다른 패키지의 액티비티나 서비스의 호출이 가능하다.

 

 

 

 

Reference

https://kairo96.gitbooks.io/android/content/ch2.4.1.html

https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko 

https://brunch.co.kr/@mystoryg/80

https://javapp.tistory.com/132