*참고 저서 <오준석의 안드로이드 생존코딩>
코틀린 기본 구문을 익힌 후엔, 책에 따라 여러 실습을 하고 있다.
중요한 개념들을 많이 거쳐온 것 같아, 몇 가지를 정리해보려 한다.
8장에 있는 액티비티 생명주기이다.
어플리케이션의 하나의 화면, 즉 액티비티는 특정한 생명주기를 지니고 있다.
특정 시점에 특정 메서드가 호출되도록 되어 있으며, 개발자는 해당 시점에 어떻게 동작할 것인지에 따라
각 메서드를 오버라이딩하는 것이다. 이 메서드들을 콜백 메서드라고 할 수도 있다.
가장 먼저, 액티비티의 생성과 함께 실행되는 메서드가 onCreate()이다. 안드로이드 스튜디오에서
액티비티를 생성하면 기본적으로 작성되어있는 메서드이기도 하다. onCreate 내에 코드를 추가하면,
생성과 동시에 코드들이 실행된다.
package com.example.mywebbrowser
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity2 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
}
}
빈 프로젝트를 생성했을 시 초기 코드. onCreate함수를 override하도록 되어 있다.
그 다음에는 onStart(), onResume()메서드가 차례로 호출된다. 동시에 실행되어선 안되는 코드들이 있다면
이를 이용해 분기할 수 있을 것 같다.
이 이후에 액티비티가 실행 중이다가, 다른 액티비티가 실행되면 onPause() 메서드가 실행된다.
그러다 액티비티가 완전히 화면에서 사라지게 되는 순간, onStop() 메서드가 실행된다.
마지막으로 액티비티가 종료될 때, onDestroy() 메서드가 실행된다. 앱이 복잡해 종료 시 특정 객체를
메모리에서 해제시켜 줘야 할 때, onDestroy()를 오버라이드해줄 필요가 생긴다.
중앙의 일자로 내려오는 흐름은 모두 설명했다. 사이드의 뒤돌아가는 흐름들은 앱이 백그라운드에 있거나,
화면이 꺼졌거나, 메모리 부족 등으로 강제 종료될 때 발생한다. 그에 따라 액티비티가 다시 실행될 때 어떤 단계에서 다시 시작하는냐 역시 확인할 수 있다.
이러한 lifecycle 개념은 사실 Unity를 공부할 때도 겪어본 적이 있다. awake, start함수 등이 그랬다.
뛰어난 앱 개발자는 앱의 상태에 따라 적절한 처리를 해주어, 에러를 없애고 성능을 높여야 할 것이다.
이를 위해 안드로이드 액티비티 생명주기는 굉장히 중요한 개념일거라 생각한다.
'대딩 기록(~22.01) > 안드로이드 공부노트' 카테고리의 다른 글
안드로이드앱 배포 파일 APK vs AAB(Andriod app bundle) (0) | 2022.01.23 |
---|---|
코틀린 기본 구문 (컬렉션, 람다) (0) | 2021.08.18 |
코틀린 기본 구문 (인터페이스, null 가능성) (0) | 2021.08.17 |
코틀린 기본 구문 (제어문, 클래스) (0) | 2021.08.16 |
코틀린 기본 구문 (변수/상수 , 함수, 자료형) (0) | 2021.08.15 |