티스토리 뷰

반응형
  • Android의 가장 기본적이면서 중요한 구성요소
  • 액티비티는 사용자와 상호작용하기 위한 진입점으로, 화면 하나를 나타냄

Activity 중요 사항

  • Activity Lifecycle : 각 수명주기에 해당하는 메서드가 언제 호출되는지 알아야함
    • onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()

그림1. Acitivty 수명주기 [출처: developer.android.com]

  • AppCompatActivity 구성 요소 : 각 구성요소가 어떤 역할을 하는지 알아야 한다.
    • [Extends] FragmentActivity
      • [Extends] ComponentActivity
      • [Implements] LifecycleOwner
      • [Implements] ViewmodelStoreOwner
      • [Implements] SavedStateRegistryOwner
      • [Implements] OnBackPressedDispatcherOwner
    • [Implements] ActivityCompat.OnRequestPermissionsResultCallback

 


Activity 코드 기본 설명

아래 코드는 안드로이드 스튜디오 기본 앱 코드에서 가져왔다.

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {   // 1) AppCompatActivity를 상속받는 MainActivity
    override fun onCreate(savedInstanceState: Bundle?) { // 2) AppCompatActivity속 onCreate function
        super.onCreate(savedInstanceState) // 3) AppCompatActivity의 onCreate 호출
        setContentView(R.layout.activity_main) // 4) AppCompatActivity의 setContentView 호출
    }
}

 

1) AppCompatActivity란?

안드로이드 액티비티의 가장 기본적인 Activity 클래스 해당 클래스에서 Activity의 수명 주기 관리를 위한 메서드들이 짜여있다.

 

2) AppCompatActivity의 onCreate 메서드 - Activity Lifecycle의 시작점

Activity가 시작되고 처음으로 불리는 메서드 Activity가 시작되거나, Activity가 Killed된 후 시작될 때 불린다.

 

 

3) AppCompatActivity의 onCreate호출

이 부분에서는 AppCompatDelegate를 AppCompatActivity와 link 시키는 일을 한다. 이 부분이 없으면 Activity의 구성을 위임하는 객체가 없을 수 있으므로 무조건 호출해야 한다. 호출하지 않으면 오류가 난다.

자세한 사항은 이후 다룰 예정이다.

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        final AppCompatDelegate delegate = getDelegate();
        delegate.installViewFactory();
        delegate.onCreate(savedInstanceState);
        super.onCreate(savedInstanceState); // AppCompatActivity는 FragmentActivity를 상속 받으므로 FragmentActivity의 onCreate을 호출한다.
    }

 

4) AppCompatActivity의 setContentView 호출

앞서 Activity에는 무조건 화면 하나가 있다고 했다. 이 화면을 activity에 set하는 역할을 담당하는 메서드이다.


참고자료

안드로이드 공식 사이트 : developer.android.com/guide/components/activities/intro-activities?hl=ko
반응형
댓글