Skip to main content

AppState

AppState는 앱이 포그라운드에 있는지 백그라운드에 있는지 알려주고, 상태가 변경될 때 이를 알려준다.

AppState는 주로 푸시 알림을 처리할 때 의도를 파악하고 적절한 동작을 결정하기 위해 자주 사용된다.

앱 상태

  • active - 앱이 포그라운드에서 실행 중인 상태
  • background - 앱이 백그라운드에서 실행 중인 상태. 사용자가 다음 중 하나를 수행 중:
    • 다른 앱을 사용 중
    • 홈 화면에 있음
    • [Android] 다른 Activity에 있음 (앱에서 실행했더라도 포함)
  • [iOS] inactive - 포그라운드와 백그라운드 사이를 전환할 때, 또는 멀티태스킹 뷰로 진입하거나 알림 센터를 열거나 전화가 오는 등의 비활성 기간 동안 발생하는 상태

더 자세한 정보는 Apple의 공식 문서를 참고한다.

기본 사용법

현재 상태를 확인하려면 AppState.currentState를 사용한다. 이 값은 최신 상태로 유지된다. 하지만 앱이 처음 실행될 때는 AppState가 브릿지를 통해 값을 가져오는 동안 currentState가 null로 설정된다.

이 예제는 "Current state is: active"라는 메시지만 표시한다. 앱이 사용자에게 보이는 상태는 active 상태일 때뿐이고, null 상태는 순간적으로만 발생하기 때문이다. 코드를 실험해보고 싶다면 임베디드 미리보기 대신 실제 기기를 사용하는 것을 추천한다.


참조

이벤트

change

앱 상태가 변경될 때 이 이벤트가 발생한다. 리스너는 현재 앱 상태 값 중 하나를 인자로 받아 호출된다.

memoryWarning

이 이벤트는 메모리 경고를 발생시키거나 메모리를 해제해야 할 때 사용한다.

focus
Android

앱이 포커스를 얻을 때(사용자가 앱과 상호작용 중일 때) 수신된다.

blur
Android

사용자가 앱과 적극적으로 상호작용하지 않을 때 발생한다. 사용자가 알림 창을 내리는 상황에서 유용하게 사용할 수 있다. AppState는 변경되지 않지만 blur 이벤트가 발생한다.

메서드

addEventListener()

tsx
static addEventListener(
type: AppStateEvent,
listener: (state: AppStateStatus) => void,
): NativeEventSubscription;

AppState에서 특정 이벤트 타입이 발생할 때마다 호출될 함수를 설정한다. eventType에 사용할 수 있는 유효한 값은 위에서 확인할 수 있다. 이 메서드는 EventSubscription을 반환한다.

속성

currentState

tsx
static currentState: AppStateStatus;