0

Я получил deviceId от GCM после успешной регистрации. Я храню свой deviceId в SharedPreferences. В основном действии я отменяю регистратор в методе onDestroy(). Если я не отменил регистрацию получателя, я получаю ошибки утечки памяти. Будут ли эти ошибки влиять на приложение ?. Если да, то когда я должен отменить регистрацию приемника? У меня нет кнопки выхода в моем приложении.Должен ли мы отменить регистрацию получателя в gcm (Android)

У меня даже есть сомнения, что если мы отменим регистрацию получателя, мы сможем получить push-уведомления?

Пожалуйста, помогите мне. Я совершенно смущен.

ответ

0

Если вы отменили регистрацию в службе GCM, вы больше не будете получать push-уведомления.

+0

, но если я не отменил регистрацию, я получаю ошибки утечки памяти. Эти ошибки влияют на мое приложение. – AndroidGeek

+0

вам нужно будет уточнить, о каких «ошибках утечки памяти» вы говорите. вы видите это в logcat? если да, вы бы опубликовали его? –

+0

MainActivity просочился IntentReceiver MainActivity $ 1 @ 416321f0, который был первоначально зарегистрирован здесь. Вам не хватает вызова unregisterReceiver()? – AndroidGeek

0

Возможно, вы не хотите отменить регистрацию. Он будет деинсталлироваться сразу после удаления приложения (в конце концов). До тех пор вы просто хотите сохранить его, чтобы получать уведомления.

2

Я считаю, что существует недоразумение между несоблюдением услуг GCM и отменой регистрации широковещательного сообщения, объявленного в ходе деятельности.

Вид ошибки вы вывесили:

MainActivity просочилась IntentReceiver MainActivity $ 1 @ 416321f0, который был первоначально зарегистрирован здесь. Вы не вызов unregisterReceiver()

выглядит, когда вы используете BroadcastReceiver получить Intents от GCMIntentService, когда вы получите сообщение на onMessage().

private final BroadcastReceiver myBroadcastReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    .... 
    } 
} 

В этом случае, да, вы должны вызвать в пустоте ошибка утечки памяти.

Это действие не отменяет push-уведомления, это только остановит boadcastreceiver для прослушивания этих намерений. GCMIntentService все равно будет получать сообщения.

+0

Точно. Я использую широковещательный приемник для получения намерений из GCMIntentService, когда я получаю сообщение на onMessage(). Большое вам спасибо. – AndroidGeek