成功注册后,我从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