didChangeAppLifeCycleState 정의
- 앱이 background 혹은 foreground 놓여질때마다 불려진다
didChangeAppLifeCycleState 이벤트
- inactive : 앱이 비활성화 상태이고 사용자의 입력을 받지 않는다.
- paused : 앱이 보이지 않고, 사용자의 입력을 받지 않으며, 백그라운드에서 동작 중. (안드로이드의 onPause()와 동일)
- resumed : 앱이 보이고 있고 사용자 입력을 받는다. (안드로이드의onPostResume()와 동일)
- suspending : 앱이 일시 중지된 상태. (안드로이드에서 onStop과 동일)
didChangeAppLifeCycleState 사용법
- with를 통해 WidgetsBindingObserver 추가
class _ShoppyLiveState extends State<ShoppyLiveScreen> with WidgetsBindingObserver
- initState에 addObserver / dispose에 removeObserver
@override
void initState() {
super.initState();
WidgetsBinding.instance!.addObserver(this);
}
@override
void dispose() {
super.dispose();
WidgetsBinding.instance!.removeObserver(this);
- didChangeAppLifecycleState 내부에서 이벤트가 바뀔때마다 캐치
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
switch(state){
case AppLifecycleState.resumed:
break;
case AppLifecycleState.inactive:
break;
case AppLifecycleState.detached:
break;
case AppLifecycleState.paused:
break;
}
}