액티비티(Activity)
액티비티(Activity)는 사용자 인터페이스(UI) 화면을 관리하는 컴포넌트다.
액티비티 역할을 하기 위해서는 AppCompatActivity()
를 상속해야 하며, AppCompatActivity가 기본적으로 가지고 있는 생명주기 메소드를 재정의해서 원하는 기능을 구현해야 한다.
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } }
액티비티의 onCreate() 메소드에서는 setContentView() 메소드를 호출하고 있다.
setContentView() 메소드는 주어진 R.layout.activity_main을 가지고 화면 구성을 한다.
→ 자세한건 안드로이드 리소스 접근에 관해서 찾아보자ㄱㄱ 길고 장황한데 기록해두긴 가독성도 별로라서 따로 안씀
[정리] 액티비티(Activity)의 특징
- 액티비티의 크기는 상태바(Status Bar) 영역을 제외한 화면 전체로 고정(원하는 위치에 원하는 크기로 변경할 수 없다.)
- 두 개의 액티비티를 동시에 보여줄 수 없다.
- 다른 애플리케이션의 액티비티를 불어낼 수 있다.
- 액티비티 내에는 Fragment(프래그먼트)를 추가하여 화면을 분할하여 별도로 조작할 수 있다.
액티비티의 생명주기(LifeCycle)
생명주기에 따라 적절한 메소드가 호출되므로, 이를 숙지해서 액티비티를 작성해야 한다.
onCreate() → onResume() → onPause() → onStop() → onDestory() 순서로 실행됨.
경우에 따라서 onRestart()가 호출되기도 한다.
API Lifecycle chart
메소드 | 설명 | 직후 실행되는 메소드 |
---|---|---|
onCreate() | 액티비티가 생성될 때 호출되며, UI 초기화에 사용된다. | onStart() |
onRestart() | 액티비티가 멈췄다가 다시 시작되기 직전에 호출됨. | onStart() |
onStart() | 액티비티가 사용자에게 보여지기 직전에 호출됨 | onResume 또는onStop() |
onResume() | 액티비티가 사용자와 상호작용하기 직전에 호출됨. | onPause() |
onPause() | 다른 액티비티가 보여질 때 호출됨. 데이터 저장, 스레드 중지 등의 처리를 하기에 적당한 메소드 | onResume 또는 onStop() |
onStop() | 액티비티가 더 이상 사용자에게 보여지지 않을 때 호출되며, 메모리가 부족할 경우에는 호출되지 않을 수도 있다. | onRestart() 또는 onDestroy() |
onDestroy() | 액티비티 소멸 시 호출됨. finish() 메소드가 호출되거나 시스템이 메모리 확보를 위해 액티비티를 제거할 때 호출됨. | 없음 걍 끝남. |
⇒ onStop(), onDestory()는 호출되지 않을 수도 있다.
💡
사용자가 home 버튼을 누르면 onUserLeaveHint()메소드가 호출되는데, 이걸 재정의 해서 원하는 코드를 작성하면 됨. onUserLeaveHint()가 호출된 후, onPause()가 호출된다.
Uploaded by
N2T'Android > Basic' 카테고리의 다른 글
[Android: Jetpack] 안드로이드 AAC(Android Architecture Components) 간략한 정리 (0) | 2022.12.31 |
---|---|
[Android: Jetpack] ViewBinding 기초 (0) | 2022.12.31 |
Fragment Lifecycle 예제 (0) | 2022.12.31 |
Fragment와 Fragment 생명주기Fragment란? (0) | 2022.12.31 |
안드로이드 구성요소 (0) | 2022.12.31 |