[Components] Activity

Greenddoovie·2021년 12월 10일
1

안드로이드

목록 보기
2/8

Activity

유저와 상호작용하는 진입점 중 하나이다.
하나의 화면을 구성한다
액티비티는 다른 액티비티에 대해 독립적이다.
어떤 앱의 액티비티에서 다른 앱의 액티비티를 실행할 수 있다.
상호작용:

  • 실행중인 액티비티를 계속 실행하기 위해 사용자의 관심사항을 추적
  • 유저가 되돌아갈 수 있고 이전에 사용된 프로세스들에 대해 아는 것
  • 이전에 사용된 프로세스들을 보관하는 우선순위를 높임
  • 앱은 프로세스가 죽게 하는 것을 도움
  • 액티비티를 복원할 수 있음
  • 앱들 간에 유저 flow를 구현하는 방법을 제공하고 앱들이 이러한 flow 형성 협조를 도움

액티비티(Activity) 특징

  • 액티비티의 크기는 상태바(Status Bar) 영역을 제외한 화면 전체로 고정(원하는 위치에 원하는 크기로 변경할 수 없음)
  • 두 개의 액티비티가 동시에 Resumed 상태일 수 없음
  • 다른 애플리케이션의 액티비티를 불러낼 수 있음
  • 액티비티 내에는 프래그먼트(Fragment)를 추가하여 화면을 분할하여 별도로 조작할 수 있음
  • 다양한 엔트리 포인트
  • main vs other activity

일반적인 프로그래밍 패러다임과 안드로이드 프로그래밍의 차이점

일반적으로 Main method를 이용해 app을 실행하는 방식과는 다르게, 안드로이드는 액티비티 생명주기에 일치하는 콜백함수를 실행하여 app을 실행한다.

Activity 생명주기

onCreate()

  • View를 생성하고 데이터를 연결하는 콜백 메소드
  • setContentView를 반드시 실행

onStart()

  • 액티비티가 visible 변환
  • foreground로 나가고 상호작용하기 위한 최종 준비를 위한 콜백 메소드

onResume()

  • activity가 유저와 상호작용 하기 전에 호출
  • onResume()이 호출된 액티비티가 스택의 최상단으로 이동
  • 유저의 인풋을 모두 캡쳐
  • 핵심 기능 호출

onPause()

  • activity가 focus를 잃거나 paused 상태일 때 호출
  • 부분적으로 유저에게 보여지고 있음
  • Back or Recent 버튼 누르면 Paused state 전환
  • 유저가 곧 떠나거나 stopped 되거나, resumed 가 될 예정
  • 부분적으로 보이기에 유저에게 UI를 update를 해야함
  • 데이터 저장, 네트워크 콜, database transaction 실행을 하면 안되는 상태

onStop()

  • 더이상 유저에게 보이지 않는 경우에 호출
  • 곧 파괴되거나 새로운 액티비티가 실행중이거나 존재하는 액티비티가 resumed 상태로 들어가거나 stooped 액티비티를 커버할 때 호출
  • 결국 stopped되면 화면에 보이지 않음

onRestart()

  • stopped state가 곧 재시작 될 경우 호출

onDestroy()

  • 액티비티 파괴 전 호출
  • 액티비티가 받는 마지막 콜백
  • 여기서 모든 자원이 방출되도록 구성
profile
기초를 이해하면 세상이 다르게 보인다

0개의 댓글