본문 바로가기
Flutter

[Flutter / 일반 / GetX] 사용자가 앱을 사용하지 않을때(백그라운드) 앱 상태 관리

by hymndaniel 2022. 3. 21.

Motivation

데이터(혹은 배터리) 사용량이 많을 것으로 예상되는 모바일 서비스를 제공함.

사용자가 앱을 사용하지 않을때는 동작을 멈춰서 불필요한 리소스 사용을 방지하는 기능 추가

 

Dependency

GetX

 

Keywords

app lifecycle

background / foreground processes

flutter getx app lifecycle

 

Implementation1 ; StatefulWidget

1. WidgetsBindingObserver

2. flutter_fgbg plugin: https://pub.dev/packages/flutter_fgbg

 

참고 출처

https://stackoverflow.com/questions/51835039/how-do-i-check-if-the-flutter-application-is-in-the-foreground-or-not

https://bb-library.tistory.com/215?category=943260 

https://levelup.gitconnected.com/lets-utilize-the-flutter-app-lifecycle-388121533fd9

 

Implementation2 ; StatelessWidget

1. SuperController를 상속받은 GetX 클래스 생성 - 4가지 앱의 생명주기를 추적할 수 있는 매서드 오버라이드

2. GetXController 대신 FullLifeCycleController 상속 = extends GetXController with WidgetsBindingObserver

 

참고 출처

https://stackoverflow.com/questions/67391556/how-to-use-getx-flutter-to-get-app-status-if-acive-or-minimized-in-the-backgroun

https://stackoverflow.com/questions/69907654/managing-app-lifecycle-state-with-getx-in-flutter

https://stackoverflow.com/questions/66170350/flutter-listen-to-lifecycle-events-on-stateless-widget

https://github.com/jonataslaw/getx/issues/877

 

결론

앱 생명주기를 모니터해야하는 클래스만 StatefulWidget으로 만들어서 WidgetsBindingObserver를 사용하는 방법이 간단함

728x90