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” 한 줄로 충분했다.