본문 바로가기
기초다지기/Flutter&Dart

flutter camara 패키지 AppLifecycleState 앱 상태 확인

by 김빵그 2023. 10. 4.

WidgetBindingObserver

class _Screen extends State <Screen> with WidgetsBindingObserver {
	@override
    void initState() {
    	WodgetsBinding.instance.addObserver(this);
    }
}
  • WidgetBindingObserver를 활용하여 appLifecycleState의 변화를 감지할 수 있다

 

 

 

camera | Flutter Package

A Flutter plugin for controlling the camera. Supports previewing the camera feed, capturing images and video, and streaming image buffers to Dart.

pub.dev

@override
void didChangeAppLifecycleState(AppLifecycleState state) {
  final CameraController? cameraController = controller;

  // App state changed before we got the chance to initialize.
  if (cameraController == null || !cameraController.value.isInitialized) {
    return;
  }

  if (state == AppLifecycleState.inactive) {
    cameraController.dispose();
  } else if (state == AppLifecycleState.resumed) {
    _initializeCameraController(cameraController.description);
  }
}
  • AppLifecycleState.inactive :  application이 비활성화되면, camera controller를 dispose
  • AppLifecycleState.resumed : 다시 재개되면 camera를 initialize 해준다
  • 유저가 다른 화면으로 떠났을 때 controllers와 같은 것들을 dispose 해왔음
  • application 변화를 감지하는 방법 > application이 제거되었을 때, 유저가 앱을 떠났을 때