取消注册新的Google云消息传递

Ser*_*o76 8 android push-notification google-cloud-messaging

我正在使用新的谷歌云消息

(GoogleCloudMessaging gcm =
           GoogleCloudMessaging.getInstance (context);)
Run Code Online (Sandbox Code Playgroud)

我正在关注这个例子,它非常好并且完美地工作:

https://github.com/commonsguy/cw-omnibus/tree/master/Push/GCMClient2

通过这个例子,我可以在GCM中注册,但是我尝试取消注册失败了.

在文档中表明您应该使用以下意图:

com.google.android.c2dm.intent.UNREGISTER
Run Code Online (Sandbox Code Playgroud)

并使用如下:

    

 Intent unregIntent = new Intent ("com.google.android.c2dm.intent.UNREGISTER");
     unregIntent.putExtra ("app", PendingIntent.getBroadcast (this, 0, new Intent (), 0));
     StartService (unregIntent);
Run Code Online (Sandbox Code Playgroud)

不工作......

正如我所说,寄存器工作正常,但不知道如何取消注册.

我必须做的不仅仅是意图吗?我究竟做错了什么?

我感谢任何帮助

感谢致敬

Era*_*ran 16

如果您使用的是新GoogleCloudMessaging类,则无需使用com.google.android.c2dm.intent.UNREGISTER意图.只需使用GoogleCloudMessaging.unregister()即可.

public void unregister()

取消注册该应用程序.调用unregister()会停止来自服务器的任何消息.这是一个阻塞调用 - 你不应该从UI线程调用它.您应该很少(如果有的话)需要调用此方法.它不仅在资源方面很昂贵,而且还会使您的注册ID无效,注册ID永远不会发生不必要的变化.更好的方法是让服务器停止发送消息.如果您希望应用程序永久停止使用GCM,或者您有充分理由回收注册ID,请仅使用取消注册.如果我们无法连接到服务器以取消注册,则抛出IOException.