안드로이드 앱 강제종료 시, 서비스 종료

조회수 3984회

안녕하세요.

안드로이드 Push 수신 앱을 개발을 하고 있습니다. 물론, 수신은 현재 잘 되고 있는데... 다음과 같은 문제점이 있는 것 같습니다.

앱을 강제 종료(Force Kill App)은 경우에는 기타 서비스 Push 수신부 서비스까지 종료가 되어 더
이상 수신이 되지 않는 점입니다.

Log... 01-16 15:21:33.098 2027-2027/? W/GCM-DMM: broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10000000 pkg=com.techin.pushnext (has extras) }

다른 온라인 자료를 찾아보면 대부분, 서비스를 강제종료를 하는 경우에 다시 되살리거나 하는 방법은 많이 나와 있더군요. 제가 찾지 못했는지는 모르겠지만,

Gmail 앱, Whatsapp, 카카오톡도 강제 종료를 하더라도, 푸시 수신은 절 되더군요.

가이드 혹은 방향을 제시를 해주시면 감사하겠습니다.

1 답변

  • 안드로이드 설정을 통해 강제 종료(Force Stop)가 된 경우에는 푸시를 수신하지 못하는 것이 안드로이드가 의도한 정상적인 상황입니다. 이를 이해하려면 안드로이드 어플리케이션의 stopped 상태에 대한 선행 학습이 필요합니다.

    ICS부터 앱 설치 시 애플리케이션은 기본적으로 stopped 상태로 진입하게 됩니다. 그렇기 때문에 사용자가 앱을 수동으로 실행하지 않는 한 모든 브로드캐스트 리시버 및 서비스는 동작하지 않습니다. 이는 "설정 > 강제종료" 시에도 stopped 상태로 진입하기 때문에 푸시나 브로드캐스트 리시버를 수신 받지 못하게 됩니다.

    올려주신 글에서 카카오톡 같은 앱은 푸시 수신이 잘 된다고 하셨는데요. 다시 한번 테스트 해 볼필요가 있습니다. 왜냐하면 강제 종료된 상태를 프로그래밍적으로 해제할 수 있는 방법이 없기 때문입니다. 참고로 제가 갖고있는 넥서스6P에서는 푸시가 수신되지 않습니다.

    관련 내용은 아래 링크에서 확인해 볼 수 있습니다.

    만일 앱을 강제 종료했다.라는 의미가 안드로이드 (네비게이션 바의) Recent Tasks 버튼을 눌러 스와이프로 앱을 종료한 경우라면 푸시를 수신하는 것이 정상입니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)