← 글 목록

notes

Android - Activity

Android Activity 생명주기·상태 전환과 화면 구성 기본 개념 메모.

Activity 종류 표를 잔뜩 적어 두고도, 정작 헷갈린 건 생명주기였다. ListActivity니 PreferenceActivity니 요즘 거의 안 쓰고, 실무에선 AppCompatActivity / ComponentActivity + Fragment/Compose가 본체다.

내가 쓰는 기본

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        // 또는 Compose: setContent { ... }
    }
}

Compose 템플릿은 ComponentActivity. Material/ActionBar 레거시면 AppCompatActivity. FragmentActivity는 Fragment/ViewPager2 쓸 때 부모.

생명주기 — 한 줄로

  • onCreate: 레이아웃·초기화. 여기서 무거운 네트워크는 피하거나 별도 스코프로
  • onStart / onResume: 보이기 시작 → 사용자 입력 가능
  • onPause: 다른 창이 일부 가림(다이얼로그, 투명 Activity). 저장은 여기보단 안전한 쪽에
  • onStop: 완전히 안 보임
  • onDestroy: 끝. 설정 변경(회전)으로 죽었다가 다시 onCreate 오기도 함 → ViewModel로 상태 보존
stateDiagram-v2
  [*] --> Created: onCreate
  Created --> Started: onStart
  Started --> Resumed: onResume
  Resumed --> Paused: onPause
  Paused --> Resumed: onResume
  Paused --> Stopped: onStop
  Stopped --> Started: onRestart/onStart
  Stopped --> Destroyed: onDestroy

Manifest

<activity
    android:name=".MainActivity"
    android:exported="true"
    android:theme="@style/Theme.MyApp">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

예전에 적어 둔 “종류”는 언제 보나

  • Dialog/Translucent 테마 Activity → 짧은 오버레이
  • Preference → 요즘은 PreferenceFragmentCompat
  • ListActivity → RecyclerView로 대체된 지 오래

선택 가이드 표는 사실상 “기본은 AppCompat/ComponentActivity” 한 줄로 충분했다.