앱이 비활성화된 상태. (재난 문자가 생각이 났다)
자세한 설명
iOS 및 macOS에서 이 상태는 포그라운드 비활성 상태에서 실행되는 Flutter 호스트 뷰에 해당합니다. 전화 통화 중일 때, TouchID 요청에 응답할 때, 앱 전환기 또는 제어 센터에 들어갈 때 또는 Flutter 앱을 호스팅하는 UIViewController가 전환 중일 때 앱이 이 상태로 전환됩니다.
출처 - https://api.flutter.dev/flutter/dart-ui/AppLifecycleState.html
백그라운드에만 존재하는 상태.(IO 응답하지 않음)
일반적인 앱 사용 시점이며, IO 모두 응답.
(최초 앱 실행때는 이벤트 발생 안함)
일반적인 앱 종료 시점.
(화면에 노출되지 않고, IO 미응답, OS View에 없음)
상태 업데이트를 위해 아래와 같이 작성했다.
class _MyHomePageState extends State<MyHomePage> with WidgetsBindingObserver {
...
void initState(){
WidgetsBinding.instance.addObserver(this);
/// addObserver는 WidgetsBindingObserver 객체가 필요함. 그래서 with과 함께 지정 (implements로도 작성가능)
} // 초기 상태값 을 지정
void dispose() {
WidgetsBinding.instance.removeObserver(this); /// 꼭 remove해야 자원 낭비를 막을 수 있다.
} //
void didChangeAppLifecycleState(AppLifecycleState state) {
switch(state) {
case AppLifecycleState.resumed:
break;
case AppLifecycleState.detached:
break;
case AppLifecycleState.inactive:
break;
case AppLifecycleState.hidden: /// 이녀석은 새로생겼는데 enum관련 상태였다.
break;
case AppLifecycleState.paused:
break;
}
}
}