成功註冊後,我從GCM獲得deviceId
。我正在將我的deviceId
存儲在SharedPreferences
中。在主要活動中,我以onDestroy()
方法註銷接收方。 如果我不取消註冊收件人,那麼我得到內存泄漏錯誤。 這些錯誤會影響應用程序嗎? 如果是這樣,那麼我應該何時取消註冊接收器? 我沒有在我的應用程序中註銷按鈕。我們是否應該以gcm(Android)註銷接收器
我甚至懷疑,如果我們取消註冊接收器,我們能否收到推送通知?
請幫我一把。我完全困惑。
成功註冊後,我從GCM獲得deviceId
。我正在將我的deviceId
存儲在SharedPreferences
中。在主要活動中,我以onDestroy()
方法註銷接收方。 如果我不取消註冊收件人,那麼我得到內存泄漏錯誤。 這些錯誤會影響應用程序嗎? 如果是這樣,那麼我應該何時取消註冊接收器? 我沒有在我的應用程序中註銷按鈕。我們是否應該以gcm(Android)註銷接收器
我甚至懷疑,如果我們取消註冊接收器,我們能否收到推送通知?
請幫我一把。我完全困惑。
如果您從GCM服務註銷,您將不再收到推送通知。
你可能不想取消註冊。它將在您卸載應用程序後最終取消註冊。在此之前,你只是想保持它,所以你可以收到通知。
我認爲從GCM服務註銷和註銷在活動中聲明的廣播接收者之間存在誤解。
錯誤的類型你貼:
MainActivity已泄漏IntentReceiver MainActivity $ -1 @,最初這裏註冊416321f0。你缺少unregisterReceiver()的調用
看來,當你使用一個BroadcastReceiver從GCMIntentService收到Intents
當你在onMessage()
得到一個消息等。
private final BroadcastReceiver myBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
....
}
}
在這種情況下,是的,你必須調用於氣孔內存泄漏錯誤。
此操作不會取消推送通知,它只會停止boadcastreceiver監聽這些意圖。 GCMIntentService仍然會收到消息。
沒錯。當我在onMessage()上收到消息時,我使用廣播接收器接收GCMIntentService的意圖,非常感謝。 – AndroidGeek 2013-05-14 11:20:36
但如果我不取消註冊,那麼我得到內存泄漏errors.Will這些錯誤影響我的應用程序。 – AndroidGeek 2013-03-27 08:09:30
您將不得不詳細說明您正在討論的「內存泄漏錯誤」。你在logcat中看到這個嗎?如果是這樣,你會發布它嗎? – 2013-03-27 08:20:35
MainActivity泄漏了最初在此處註冊的IntentReceiver MainActivity $ 1 @ 416321f0。你是否錯過了對unregisterReceiver()的調用? – AndroidGeek 2013-03-27 08:39:14