안드로이드 개발자의 창고
[34일차 Android] Activity 본문
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT
📖 안드로이드 4대 구성 요소
- 안드로이드 애플리케이션은 독립적인 다양한 실행 단위를 하나로 묶어 관리하는 개념이다.
- Activity
- Service
- Broadcast Receiver
- Content Provider
📖 Activity
- 현재 보이는 화면을 관리하는 실행 단위
- 애플리케이션을 실행하면 Activity가 실행되고 Activity가 관리하는 화면이 나타나게 된다.
- 안드로이드는 이전, 다음이라는 개념이 없다.
- 안드로이드는 Back Stack이 존재하며 뒤로가기 버튼을 누르게 되면 Activity는 Back Stack에서 제거된다.
Activity 생명 주기
- Activity가 실행 : onCreate -> onStart -> onResume
- 다른 Activity의 화면이 보일 때 : onPause -> Activity 일시 정지
- 다시 Activity의 화면이 보일 때 : onResume -> Activity 다시 동작
- Activity의 화면이 완전히 보이지 않게 될 때 : onPause -> onStop
- Activity의 화면이 다시 보여지게 될 때 : onRestart -> onstart -> onResume -> Activitiy 다시 동작
- Activity가 종료될 때 : onPause -> onStop -> onDestroy
예제 코드
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Log.d("lion","onCreate")
}
override fun onStart() {
super.onStart()
Log.d("lion","onStart")
}
override fun onResume() {
super.onResume()
Log.d("lion", "onResume")
}
override fun onPause() {
super.onPause()
Log.d("lion", "onPause")
}
override fun onStop() {
super.onStop()
Log.d("lion", "onStop")
}
override fun onRestart() {
super.onRestart()
Log.d("lion", "onRestart")
}
override fun onDestroy() {
super.onDestroy()
Log.d("lion", "onDestroy")
}
}
코드 리뷰
- onCreate()
- 액티비티가 처음 실행될 때 자동으로 호출된다.
- 액티비티가 관리할 View들을 생성하고 View들에 대한 초기작업을 수행한다.
- 화면 회전이 발생했을 때의 처리도 수행한다.
- onStart()
- 액티비티가 처음 생성될 때 onCreate() 다음으로 호출된다.
- 액티비티가 보이지 않는 상태가 되었다가 다시 보이게 될 때 onRestart 다음에 호출된다.
- onResume()
- 액티비티가 처음 생성될 때 onStart 다음으로 호출된다.
- 다른 액티비티가 보여지고 다시 이 액티비티가 보여질 때 호출된다.
- 액티비티가 보여지지 않았다가 다시 보일 때 onStart 호출된다.
- Activity가 다시 동작할 때 동작할 코드는 onResume()에 작성한다.
- onPause()
- 다른 액티비티가 눈에 보여질 때 호출되며 현재 액티비티는 일시정지된다.
- Activity가 일시 정지될 때 동작할 코드는 onPause()에 작성한다.
- onStop()
- 현재 액티비티의 화면이 완전히 보이지 않게될 때 opPause 다음에 호출된다.
- onRestart()
- onStop이 호출된 이후 다시 액티비티가 보여지는 상태가 될 때 호출된다.
- onDestory()
- 액티비티가 완전 종료될 때 호출된다.
'Computer > Android' 카테고리의 다른 글
[34일차 Android] OnActivityResult (0) | 2023.06.23 |
---|---|
[34일차 Android] Activity 실행하기 (0) | 2023.06.17 |
[34일차 Android] Popup Menu (0) | 2023.06.17 |
[34일차 Android] Context Menu (1) | 2023.06.17 |
[34일차 Android] Option Menu (0) | 2023.06.17 |