일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Permission
- User
- MySQL
- 안드로이드
- Lockscreen
- C++ Build
- MariaDB
- thread
- password
- background_callback
- 권한부여
- Android
- Flutter
- 백그라운드
- 사용자추가
- Background
- YouTube API
- C++
- 잠금화면
- 흰셔츠 #누런때
- 권한
- VSCode
- 쓰레드
- Flutter #Android #FCM #FirebaseCloudMessaging
- 플러터
- C++ Debugging
- firebase_message
- policy
- 사용자삭제
- Today
- Total
고래 정보 분류소
[Flutter] Plugin의 Background callback의 문제점 본문
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 |
---|