고래 정보 분류소

[Flutter] Plugin의 Background callback의 문제점 본문

Flutter

[Flutter] Plugin의 Background callback의 문제점

블루웨일 2020. 3. 17. 03:20

firebase_message Plugin의 BackgroundMessage Event에는 껄끄러운 문제점이있다.

 

비단 이 Plugin의 문제만이 아니라 Background Callback을 등록하는 Plugin들의 문제점일것이다.

 

Flutter 구조를 간단히 분석해본 결과 Android/IOS의 앱 시작부분에  Flutter Engine을 등록하게 되어있다.

 

예를들어 Android는 MainActivity에 Flutter Engine을 등록해서 Flutter의 Plugin들을 불러와 사용하는 것이다.

 

위의 firebase_message Plugin 같은 경우 Android 기준 FirebaseMessageReceiver에서 FCM 데이터를 받으면 Service를 거쳐 등록한 BackgroundMessage Callback을 호출하게 되어있다. 앱이 종료됬을때는 물론이거니와 이 루트로 Background Callback을 호출하면 MainActivity에서 불러와진 Flutter Engine을 사용 할 수 없는듯하다. 아마도 Thread의 문제인 것같다.(좀 더 분석 필요)

 

Background Callback을 호출하는 소스를 보면 firebase_message Plugin만 로드해서 Background Callback을 호출하는게 보인다. 이 떄문인지 원래 의도는 FCM 데이터를 받으면 데이터에 따라 Notification을 출력할려고 했지만 Notification 등록을 수행하는 Plugin은 Background Callback에서 실행이 되지않았다.

 

Flutter로 개발할 때 이 문제를 염두에두고 기획하는 것이 좋을 것이다.

'Flutter' 카테고리의 다른 글

[Flutter] firebase_message background handling  (3) 2020.03.12