GoogleCloudMessaging.unregister()は呼び出す必要はない。
【前提記事】AndroidのPush通知の話。 - なるようになるといいね
GCMRegistrar
のisRegistered()
に相当するメソッドがなくなっているところから勘の良い人は気付くかと思いますが、
GoogleCloudMessaging | Android Developers より一部抜粋
public void unregister ()
You should rarely (if ever) need to call this method. Not only is it expensive in terms of resources, but it invalidates your registration ID, which should never change unnecessarily. A better approach is to simply have your server stop sending messages. Only use unregister if you want to change your sender ID.
以下、私訳。
あなたがこのメソッドを呼ぶ必要があることは稀である(ほぼ無い)。リソースの面で高価というだけではなく、変更がない
Registration ID
を、不必要に無効化すべきではありません。より良いアプローチは、単純にあなたのサーバーがメッセージの送信を停止することです。あなたが
Sender ID
を変更したい場合のみ、登録解除を利用します。
Sender ID
はAPIコンソールのプロジェクトと紐付いているため、特別な事情がありAPIコンソールのプロジェクトを作り直す必要に迫られる場合を除いては、一度GCMサーバーに登録したRegistrationID
を、明示的に登録解除する必要はないということです。
また、個別ユーザーに対するPush通知の送信/停止の判断は、3rdパーティーサーバー側で責任を持つのが良いという指針が示されています。その方が合理的ですね。