App life-cycle

강정우·2025년 3월 24일
0

Flutter&Dart

목록 보기
91/96
post-thumbnail

inactive: 재난문자와 같이 해당 앱 위에 어떠한 앱이 띄워진 경우와 같이 다른 윈도우에 focus가 가있는 상태
paused: 홈으로 나간 거 처럼 완전히 다른 윈도우로 벗어난 상태
resumde: 앱을 실행중인 상태
detached: 앱을 종료한 상태

이렇게 앱의 라이프 사이클을 관찰하기 위해서는 WidgetsBinding 객체가 필요하면 이는 singletone 이기 때문에
WidgetsBinding.instance 로 접근해야한다.

아래 코드를 보면 WidgetsBinding 인스턴스에 바라볼 observer<WidgetsBindingObserver> 를 넣어줘야하는데 우리가 보고 싶은 위젯에 코드를 작성하니 당연히 this 가 필요하고 이를 WidgetsBindingObserver 를 상속받는 것이다.

class StFulState extends State<InstaCloneHome> with WidgetsBindingObserver {

  
  void initState() {
    WidgetsBinding.instance.addObserver(this);
    super.initState();
  }

  
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  
  Widget build(BuildContext context) {
    return const Placeholder();
  }
}

또한 memory leak 을 방지하기 위해 dispose 시 removeObserver 를 해줘야한다.

profile
智(지)! 德(덕)! 體(체)!

0개의 댓글

관련 채용 정보