프론트엔드/Android

안드로이드 5주차

해안해 2022. 5. 3. 17:44
  • LifeCycle
    • Life Cycle Why?

프로그램의 실행 상태를 확인하고 이에 적합한 일을 처리해주어야 하는데, 이때 활용되는 것이 생명주기임.

    • Life Cycle 패러다임

  • OnCreate()

   - 최초 실행 시에만 해줘야 하는 작업들

   - Data Binding

   - View 생성

   - setContentView와 같은 레이아웃 정의

  • OnStart()

   - 화면에 진입할 때마다 실행되어야 하는 작업들

   - UI를 관리하는 코드를 초기화

   - onStop()에서 해제된 리소스 초기화

  • OnResume()

   - 사용자에게 보이는 동안 실행해야 하는 기능

   - onPause()에서 해제된 리소스 초기화

   - 화면이 재개된 상태로 전환될 때마다 필요한 다른 초기화 작업

  • OnPause()

   - Activity가 최상단에 있지 않은 상태(포커스를 잃었을 떄)에 호출됨

   - 잠시후 다시 시작할 작업을 일시중지 or 조정

   - 배터리 수명에 영향을 미칠 수 있는 리소스 해제 (GPS, Thread, 카메라 미리보기 등)

   - 잠깐동안 실행되기 때문에 무거운 작업을 실행하기에는 시간이 부족할 수 있어 부하가 큰 작업은 OnStop() 함수의 사용을 권장

  • OnStop()

   - Activity가 완전히 가려져 보이지 않는 상태에 호출됨

   - 사용자에게 보이지 않는 동안 필요하지 않은 리소스를 해제 or 조정

   - 비교적 부하가 큰 저장 작업 (정보 -> 데이터베이스에 저장)

  • OnRestart()

   - 화면이 가려졌다가 다시 돌아왔을 때에만 호출되는 함수

  • OnDestroy()

   - Activity가 소멸되기 전에 가장 마지막에 호출되어 정리하는 작업

   - 해제되지 않은 모든 리소스를 해제

 

    • 어떤 Life Cycle에 어떤 기능을 넣는 것이 올바를까?

 

  • MediaPlayer

MediaPlayer한테 어떤 음악을 재생할 것인지 알려준다.

 

  • SharedPreferences

- 내부 저장소에 데이터를 저장할 수 있게 해주는 것으로, 앱이 종료되었다가 다시 실행되어도 저장된 데이터를 꺼내서 사용할 수 있게 해줌

- 간단한 설정값과 같은 데이터를 저장할 때 유용(ex. 로그인 시 비밀번호) 

 

  • Editor
  • Json

- 데이터 표현 표준 (Java 객체를 다른 곳으로 전송할 때 해당 포맷을 사용)

- Song 객체를 JSON 포맷으로 변환시켜 한번에 SharedPreferences에 넣어줌

  • Gson

- Song 객체를 JSON으로 변환시켜줌 (Java 객체 <-> JSON)

 

 

 

 

[강의 출처 : 컴공선배]