0

성공적으로 등록하면 GCM에서 deviceId을 받았습니다. 내 deviceIdSharedPreferences에 저장하고 있습니다. 주요 활동에서 나는 onDestroy() 방법에있는 수신기를 등록 해제합니다. 수신자 등록을 취소하지 않으면 메모리 누수 오류가 발생합니다. 이러한 오류가 응용 프로그램에 영향을 줍니까? 그렇다면 수신기를 등록 취소해야하는시기는 언제입니까? 내 응용 프로그램에 로그 아웃 버튼이 없습니다.gcm (Android)에서 수신기 등록을 취소해야합니다.

수신기를 등록 취소하면 밀어 넣기 알림을받을 수 있다고 생각하지 않습니다.

도와주세요. 나는 완전히 혼란 스럽다.

답변

0

GCM 서비스에서 등록을 취소하면 더 이상 푸시 알림을받지 않습니다.

+0

하지만 등록을 취소하지 않으면 메모리 누수 오류가 발생합니다. 이러한 오류가 내 애플리케이션에 영향을줍니다. – AndroidGeek

+0

당신은 당신이 말하는 "메모리 누출 오류"에 대해 정교하게 다뤄야 할 것입니다. 당신은 logcat에서 이것을보고 있습니까? 그렇다면 게시 하시겠습니까? –

+0

MainActivity는 원래 여기에 등록 된 IntentReceiver MainActivity $ 1 @ 416321f0을 유출했습니다. unregisterReceiver()에 대한 호출이 누락 되었습니까? – AndroidGeek

0

아마 등록을 원하지 않을 것입니다. 일단 앱을 제거하면 (결국) 등록 해제됩니다. 그 때까지는 알림을받을 수 있도록 계속 유지하기 만하면됩니다.

2

GCM 서비스의 등록 취소와 활동에 선언 된 방송 수신기의 등록 취소 사이에 오해가 있다고 생각합니다.

오류의 종류는 당신이 게시 :

MainActivity 원래 여기에 등록 된 416321f0 @ IntentReceiver MainActivity에게 $ 1 유출했다. 당신은 unregisterReceiver()를 호출

당신이 onMessage()에서 메시지를받을 때 GCMIntentService에서 Intents을받을 브로드 캐스트 리시버를 사용할 때처럼 보이는 누락되었습니다.

이 경우 예 : 을 호출하면 메모리 누수 오류가 발생합니다.

이 작업은 푸시 알림을 취소하지 않으므로 boadcastreceiver가 해당 인 텐트를 수신하는 것을 중지합니다. GCMIntentService는 여전히 메시지를 수신합니다.

+0

바로. onMessage()에서 메시지를 받으면 GCMIntentService에서 인 텐트를 받기 위해 브로드 캐스트 리시버를 사용합니다. 정말 고마워요. – AndroidGeek