본문 바로가기

Android/Basic

액티비티(Activity)

📚

액티비티(Activity)

액티비티(Activity)는 사용자 인터페이스(UI) 화면을 관리하는 컴포넌트다.

액티비티 역할을 하기 위해서는 AppCompatActivity()를 상속해야 하며, AppCompatActivity가 기본적으로 가지고 있는 생명주기 메소드를 재정의해서 원하는 기능을 구현해야 한다.

💡
Java 안드로이드의 경우, public class MainActivity extends Activity의 형태로 Activity 클래스를 상속해준다. 근데, Kotlin이라고 다른건 아니다. AppCompatActivity()는 Activity의 자식이기 때문.
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