0

https://developers.google.comのガイドラインを使用して、プロジェクトに GCM を実装しました。

私が取った手順は次のとおりです。

  1. デバイストークンを受け取る場合:

    ->GCMRegistrationIntentService拡張IntentServiceし、私の mainActivity から開始されるクラス。

    -> このサービスで使用したもの:

    InstanceID instanceID = InstanceID.getInstance(getApplicationContext());
    token = instanceID.getToken(AppConstants.SENDER_ID, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
    

    トークンを正常に受け取りました。

  2. メイン アクティビティの LocalBroadcastListener を使用して、ステップ 1 で生成されたトークンを取得し、それを共有設定に保存します (メッセージ サーバーにも送信します)。

  3. 古いトークンが期限切れになった場合にトークンを取得するためにGCMTokenRefreshListenerService拡張するクラス。InstanceIDListenerService

    ->これで私はに電話をかけましGCMRegistrationIntentServiceonTokenRefresh()

今私の質問は次のとおりです。

  1. どの場合に GCMTokenRefreshListenerService が呼び出されますか?
  2. インスタンス ID とは何ですか? instanceID のライフサイクルとは何ですか?
  3. 以下を使用してターミナルからサービスを実行しました。

    ./adb shell am startservice -a com.google.android.gms.iid.InstanceID --es "CMD" "RST" -n package.name/service.name.
    

    毎回新しいトークンをくれました。この新しく生成されたトークンを共有設定に保存するにはどうすればよいですか?

  4. このサービスから新しいトークンを受け取ると、トークンが変更されているため通知が届きません。トークンを更新するには、アプリを開く必要があります。このトークンを更新するには?

  5. アプリを開いてトークンを取得するたびに GCM を呼び出す必要がありますか?
4

1 に答える 1