앱 라이프사이클 및 백그라운드 실행
AppState, foreground/background transitions, headless JS, background fetch, deep links, universal links
1React Native에서 AppState.currentState가 반환하는 세 가지 상태는 무엇입니까?
React Native에서 AppState.currentState가 반환하는 세 가지 상태는 무엇입니까?
답변
AppState.currentState는 세 가지 상태 중 하나를 반환합니다: 'active'(앱이 포그라운드에 있고 상호작용 가능), 'background'(앱이 백그라운드에 있지만 실행될 수 있음), 'inactive'(iOS의 전환 상태, 예를 들어 멀티태스킹 보기를 표시할 때). Android에서는 전환이 'active'와 'background' 사이에서 직접 이루어지므로 'inactive' 상태는 드뭅니다.
2AppState로 애플리케이션 상태 변경을 수신하려면 어떤 메서드를 사용해야 합니까?
AppState로 애플리케이션 상태 변경을 수신하려면 어떤 메서드를 사용해야 합니까?
답변
AppState.addEventListener('change', callback) 메서드를 사용하면 애플리케이션 상태 변경을 수신할 수 있습니다. callback은 새 상태('active', 'background' 또는 'inactive')를 매개변수로 받습니다. 메모리 누수를 방지하려면 클린업 시 addEventListener가 반환하는 remove() 메서드로 리스너를 제거하는 것이 중요합니다.
3iOS에서 'inactive' 상태는 일반적으로 언제 발생합니까?
iOS에서 'inactive' 상태는 일반적으로 언제 발생합니까?
답변
iOS의 'inactive' 상태는 짧은 전환 중에 발생합니다. 제어 센터, 알림 센터, 멀티태스킹 화면(Home 더블 탭) 표시 시 또는 수신 전화 중에 발생합니다. 앱이 보이지만 상호작용할 수 없는 중간 상태입니다. Android에서는 'active' 와 'background' 간 전환이 직접 이루어지기 때문에 이 상태가 관찰되는 경우는 드뭅니다.
useEffect 내에서 AppState 리스너를 올바르게 구현하려면 어떻게 해야 합니까?
React Native에서 Headless JS Task란 무엇입니까?
+17 면접 질문