应用程序运行时如何停止GCM

时间:2014-09-06 13:32:52

标签: android google-cloud-messaging

我想在应用运行时停止GCM通知

public class GcmBroadcastReceiver extends WakefulBroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {




    ComponentName comp = new ComponentName(context.getPackageName(),
            GcmMessageHandler.class.getName());


    startWakefulService(context, (intent.setComponent(comp)));
    setResultCode(Activity.RESULT_OK);

}

我试图获取上下文值,但是当应用程序运行时没有差异

2 个答案:

答案 0 :(得分:0)

当应用程序位于前台时,为什么不忽略GCMIntent服务中的GCM事件。

该活动仍会进入您的服务,您只是在应用运行时无法执行您的操作。

因此,在您的GCMIntent服务中,伪代码如下所示:

protected void onReceive(Context cxt, Intent arg1) {
if (!APP_IS_RUNNING) {
    // Do your GCM related action
}
...

作为替代方案,您还可以在应用程序运行时从GCM取消注册您的设备,因此不再发送消息,但我认为这将更加棘手(您必须记住重新注册app close,这可能具有挑战性。)

答案 1 :(得分:0)

您可以使用

的方法
  

GoogleCloudMessaging.unregister

它将阻止消息到达您的应用,直到您再次注册GCM。 但谷歌开发者并不推荐