내용 보기
작성자
관리자 (IP : 172.17.0.1)
날짜
2020-07-09 07:39
제목
[Android] FCM(Firebase)을 이용한 Push처리 시 앱 Background처리 대응
FCM(Firebase)을 이용해서 Push처리시 해당 어플이 실행중 일때 즉 Foreground상태에서는 정상적으로 FirebaseMessagingService클래스를 상속받아 구현한 onMessageReceived메서드가 호출되어 같이 넘긴 Data를 받아 처리 할 수 있다. 하지만 어플이 Background상태일 경우(앱 자체가 시작되지 않았거나, 메모리에서 내려간 경우) SDK에서 전달받은 데이터에 키를 찾아서 'Notification'키가 있는 경우는 SDK내에서 처리해서 onMessageReceived메서드를 호출 할 수 없게 된다. 이를 해결하려면 'Notification'키 내에 Intent필터를 걸어줄 수 있는 액션을 함께 설정해서 push를 전송해야 한다.
위 코드에서 MainActivity에 Intent필터를 설정한 부분을 보면
action과 category속성을 설정한 것을 볼 수 있다. FCM Push발송에 대한 JSON은 다음과 같다.
전달 받은 데이터는 Intent 필터를 설정한 Activity에서 다음과 같이 처리 할 수 있다. 위 코드에서는 push알림 클릭 후 해당 앱 진입시 android.intent.action.MAIN Activity를 표시 하기에 MainActivity에서 데이터를 받는다.
위 처럼 Bundle클래스를 통해 FCM SDK가 전달한 데이터를 받아서 처리 할 수 있다. |
출처1
출처2