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;