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()
static addEventListener(
type: AppStateEvent,
listener: (state: AppStateStatus) => void,
): NativeEventSubscription;
AppState에서 특정 이벤트 타입이 발생할 때마다 호출될 함수를 설정한다. eventType
의 유효한 값은 이벤트 섹션에서 확인할 수 있다. 이 메서드는 EventSubscription
을 반환한다.
속성
currentState
static currentState: AppStateStatus;