티스토리 뷰

반응형

블루투스 scan 중 에 새로운 device 가 discover 되었다는 event를 받으면 호출 하는 함수를 아래와 같이 정의 하였다. 

///---------------------------------------------------------------------------
/// 스캔된 장비 수 업데이트 메서드
///  - bleCommonData.isScanListUpdated 에서는 새로운 장비가 scan 되었을 때만 event 발생
///  하고 기존에 scan 된 장비가 꺼졌을 때에 대해서는 인지하지 못하므로 이 메서드를 실행하여 update
///---------------------------------------------------------------------------
void updateNumOfScannedDevice() {
  WidgetsBinding.instance.addPostFrameCallback((_){
    if (mounted) {
      setState(() {
        numOfScannedDevice = bleCommonData.scanDevices.length;
      });
    }
  });
}

이 함수는 처음 initState 에서 bluetooth 모듈로부터 isScanListUpdated 를 listen 하다가 event가 발생하면 실행하도록 했는데, 실행이 안되고 있었다. 

 

debugging 과정에서 updateNumOfScannedDevice() 메서드가 호출 되는 것 까지는 확인이 되었는데, WidgetBinding.instance.addPostFrameCallback 호출이 안되는 것이었다. 

 

왜 안되지? 이유를 몰라서 구글링을 했더니, 해당 위젯에서 새 프레임을 그릴일이 없어서 addPostFrameCallback 을 호출할 일이 없기 때문일 것이라고 한다. 그래서 강제로 새 프레임을 그리도록 아래의 코드를 WidgetBinding.instance.addPostFrameCallback() 를 호출한 뒤에 추가해주면된다고 한다. 

WidgetsBinding.instance!.ensureVisualUpdate();

 

 

참고 자료

1. https://stackoverflow.com/questions/69738183/flutter-addpostframecallback-callback-not-called

 

Flutter : addPostFrameCallback callback not called

I try to implement a redirection system. If I receive a notification (from Firebase messaging) when my application is in background, I store the sent route information (e.g: redirect = /medias/deta...

stackoverflow.com

 

2. https://velog.io/@sumong/Flutter-addPostFrameCallback%EC%9D%B4-%ED%98%B8%EC%B6%9C%EB%90%98%EC%A7%80-%EC%95%8A%EB%8A%94%EB%8B%A4%EB%A9%B4-GetX%EC%97%90%EC%84%9C-onReady-%ED%95%A8%EC%88%98%EA%B0%80-%EC%8B%A4%ED%96%89%EB%90%98%EC%A7%80-%EC%95%8A%EB%8A%94%EB%8B%A4%EB%A9%B4

 

[Flutter] addPostFrameCallback이 호출되지 않는다면? / GetX에서 onReady() 함수가 실행되지 않는다면?

💡 이 글에서 제시하는 해결책은 GetX를 쓰는 프로젝트에서 특정 화면에 대해 onReady() 함수가 실행되지 않을 때에도 적용할 수 있습니다.(이는 GetX의 onReady() 함수 또한 onInit() 안에서 addPostFrameCallb

velog.io

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함