2

GCMは完全に機能しています。私の質問は、AndroidのBACKキーを使用してアプリを終了すると、onDestroy()が呼び出され、リークを回避するために、gcmのレシーバーの登録を解除して、onUnregister()が呼び出されることです。しかし、電源投入時にgcmを一度登録して(起動が完了しましたか?)、いつでも通知を受け取ることができるようにしたいと思います。グーグルが登録インテントを更新するかもしれないとき、私はまだ処理する必要があることを知っています。しかし、gcmをonCreate()に登録するための新しいサービスを作成する必要があるかどうかはわかりませんか?現在、メインアクティビティのonCreate()にgcmを登録しています。

助けてくれてありがとう!

ジャスティン

4

1 に答える 1

2

コードを見ないとわかりにくいですが、アプリを終了するたびにGCMから登録を解除しないでください。典型的なGCMアプリのライフサイクル(GCM jarを使用している場合)は次のようになります。

  1. アプリが起動し、GCM登録ID(GCMに登録されていることを意味します)があるかどうかを確認してから、サーバーに登録されているかどうかを確認します。
  2. それがregistrationIDを持っているが、サーバーに登録していない場合、それを行おうとします。
  3. 登録IDがない場合は、GCMへの登録を試み、registrationIDを取得すると、サーバーへの登録を試みます。

4番は、通知の受信を解除する設定をオフにしたときに、GCMから登録解除される可能性があります。

GoogleのクライアントサンプルDemoActivityをご覧ください:http ://code.google.com/p/gcm/source/browse/samples/gcm-demo-client/src/com/google/android/gcm/demo/app/DemoActivity .java

GCMから登録解除されていないことに注意してください。それらのサンプルに従うと、デバイスの電源がオンになった後、自分で何もしなくても通知を受け取ることができます。

于 2012-12-12T21:38:47.777 に答える