2016-06-28 2 views
1

를 실행하지 않는 경우에도) onMessageReceived()와 onTokenRefresh을 (처리 나는이 개 서비스 응용 프로그램이 있습니다앱에서

MessagingService extends FirebaseMessagingService 

InstanceIDService extends FirebaseInstanceIdService 

AndroidManifest.xml 파일에 선언됩니다. 문제는 내 앱의 프로세스가 강제 종료되면 서비스도 종료된다는 것입니다.

나는 그들을 살해하지 않기를 바랍니다. 나는 Service 클래스의 START_STICKY 플래그에 대해 들었지만,이 플래그를 반환하기 위해 나는

+4

이러한 서비스는 기기에서 항상 실행되는 Google Play 서비스에 의해 시작됩니다. 이 서비스를 직접 시작하거나 중지 할 필요가 없습니다. –

+0

@ArthurThompson 내 onMessageReceived() 메소드에서 로그를 넣었습니다. 앱을 죽이고 다운 스트림 알림을 보내면 로그가 실행되지 않습니다 ... 이것은 내 앱이 있던 위치에서 서비스가 삭제 된 이유입니다. – Drarig29

+1

onMessageReceived는 데이터 메시지를 보낼 때 항상 호출되지만 알림 메시지를 보내면 호출되지 않는 경우가 있습니다. 어떤 유형의 다운 스트림 메시지를 보내고 있습니까? –

답변

0

코멘트에 대답하기 위해, 내가 어떤을 찾지 못했습니다 ... 이러한 서비스의 onStartCommand() 방법을 재정의 할 수 없습니다 "해결책"문제가 이 아니기 때문에입니다. 사용자가 내 앱을 닫고 싶다면 그는 권리가 있습니다. 응용 프로그램이 강제 폐쇄 사용자, 응용 프로그램도입니다이나 서비스가를 다시 시작하면 내 onMessageReceived() 방법부터

는 내 응용 프로그램 내 MessagingService에 속한다.

Weishi Zeng이 의견에서 "설정 강제 종료"는 서비스를 포함하여 내 앱에 대한 모든 것을 중지하므로 Google Play 서비스에서 알림을 받지만 내 앱에는 표시되지 않습니다. 그런 다음 onMessageReceived() 메서드가 실행되지 않습니다. 그러나 서비스는 "스 와이프 닫음"으로 닫히지 않습니다.

결국 사용자 선택과 상충 될 수 있으므로 해결 방법을 찾고 싶지 않습니다.

here을 참조하십시오.

관련 문제