[Flutter] 플러터에서 생명주기 이벤트를 받고싶으면? didChangeAppLifeCycleState

메모하는 개발자·2021년 10월 11일
0

didChangeAppLifeCycleState 정의

  • 앱이 background 혹은 foreground 놓여질때마다 불려진다

didChangeAppLifeCycleState 이벤트

  • inactive : 앱이 비활성화 상태이고 사용자의 입력을 받지 않는다.
  • paused : 앱이 보이지 않고, 사용자의 입력을 받지 않으며, 백그라운드에서 동작 중. (안드로이드의 onPause()와 동일)
  • resumed : 앱이 보이고 있고 사용자 입력을 받는다. (안드로이드의onPostResume()와 동일)
  • suspending : 앱이 일시 중지된 상태. (안드로이드에서 onStop과 동일)

didChangeAppLifeCycleState 사용법

  1. with를 통해 WidgetsBindingObserver 추가
class _ShoppyLiveState extends State<ShoppyLiveScreen> with WidgetsBindingObserver 
  1. initState에 addObserver / dispose에 removeObserver
@override
  void initState() {
    super.initState();
    WidgetsBinding.instance!.addObserver(this);
  }

  @override
  void dispose() {
    super.dispose();
    WidgetsBinding.instance!.removeObserver(this);
  1. 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;
    }
  }

0개의 댓글