0

deviceId登録に成功すると、GCM から取得しました。に保管deviceIdしていSharedPreferencesます。onDestroy()主なアクティビティでは、メソッドでレシーバーの登録を解除しています。受信者を登録解除しないと、メモリ リーク エラーが発生します。これらのエラーはアプリケーションに影響しますか?. もしそうなら、いつ受信者を登録解除する必要がありますか? アプリケーションにログアウトボタンがありません。

受信者を登録解除すると、プッシュ通知を受信できるようになるのでしょうか?

私を助けてください。私は完全に混乱しています。

4

3 に答える 3

2

GCM サービスからの登録解除とアクティビティで宣言された放送受信機の登録解除の間に誤解があると思います。

あなたが投稿したエラーの種類:

MainActivity は、もともとここに登録されていた IntentReceiver MainActivity$1@416321f0 をリークしました。unregisterReceiver() への呼び出しがありませんか

Intentsでメッセージを受信したときに、broadcastreceiver を使用して GCMIntentService からを受信したときのように見えますonMessage()

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

この場合、はいunregisterReceiver(myBroadcastReceiver)、メモリ リーク エラーを void に呼び出す必要があります。

このアクションはプッシュ通知をキャンセルするのではなく、boadcastreceiver がそれらのインテントをリッスンするのを停止するだけです。GCMintentService は引き続きメッセージを受信します。

于 2013-05-10T18:05:33.950 に答える
0

GCM サービスから登録を解除すると、プッシュ通知が届かなくなります。

于 2013-03-27T07:36:39.380 に答える
0

おそらく、登録を解除したくないでしょう。アプリをアンインストールすると(最終的に)登録が解除されます。それまでは、通知を受信できるようにオンにしておく必要があります。

于 2013-03-27T07:37:24.923 に答える