Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何停止GCMBaseIntentService,以便不会收到通知?_Android_Notifications_Google Cloud Messaging_Android Notifications - Fatal编程技术网

Android 如何停止GCMBaseIntentService,以便不会收到通知?

Android 如何停止GCMBaseIntentService,以便不会收到通知?,android,notifications,google-cloud-messaging,android-notifications,Android,Notifications,Google Cloud Messaging,Android Notifications,我几乎在我所有的应用程序中都成功地实现了GCM,因此我可以向我的用户发送通知。他们工作良好,但现在我希望我的用户决定他们是否需要通知。假设将有一个切换按钮,用于确定设备是要注册还是取消注册 我尝试了以下代码注销,但没有成功,我仍然能够收到通知 GCMRegistrar.setRegisteredOnServer(context, false); 及 我可以在服务器上设置false标志,这样就不会在原点发送通知,或者如果用户禁用接收通知的选项,我也不会在onMessage()中侦听通知,但我不希

我几乎在我所有的应用程序中都成功地实现了GCM,因此我可以向我的用户发送通知。他们工作良好,但现在我希望我的用户决定他们是否需要通知。假设将有一个切换按钮,用于确定设备是要注册还是取消注册

我尝试了以下代码注销,但没有成功,我仍然能够收到通知

GCMRegistrar.setRegisteredOnServer(context, false);

我可以在服务器上设置false标志,这样就不会在原点发送通知,或者如果用户禁用接收通知的选项,我也不会在
onMessage()
中侦听通知,但我不希望这样


我希望取消注册gcmregistar,停止服务(GCMBaseIntentService)。

在注册gcm的类中创建一个静态处理程序

    static Handler mHandler;
在你的oncreate中

mHandler = new Handler()
    {
        public void handleMessage(android.os.Message msg) 
        {
            super.handleMessage(msg);
            if (msg.what == 0)
            {

                GCMRegistrar.unregister(context);

            }


        }
    };
现在将消息发送给处理程序,以便像这样注销此gcm

        Message msg=MainActivity.mHandler.obtainMessage();
            msg.what=0;
            MainActivity.mHandler.sendMessage(msg);
这将触发mainActivity的处理程序来注销gcm


尝试一下会对您有所帮助。

您是否尝试过注销您的gcm服务?您能告诉我该过程吗?@user3564321还有一件事我想确认GCMBaseIntentService是否真的在后台运行,因为我在application Manager的“运行”部分没有看到我的应用程序,但它仍然显示“强制停止”当我在应用程序管理器的“设置”中单击“下载”时。为什么?谢谢你的快速回复…当我在尝试你的代码时,你能解释一下我问的关于GCM的最后一个问题吗?但是为什么它不把应用程序名称显示在应用程序管理器设置的“运行”部分?不知道更多关于这一点,你应该使用谷歌或者把这个问题放到stackoverflow上。好的,thanx…你的处理程序代码已经解决了。谢谢,我会接受答案的。再来一次。!!!
        Message msg=MainActivity.mHandler.obtainMessage();
            msg.what=0;
            MainActivity.mHandler.sendMessage(msg);