2014-09-06 40 views
0

我想停止GCM通知當應用程序正在運行如何停止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); 

} 

我試圖讓上下文值,但有當應用程序正在運行或不

+0

試試這個鏈接http://stackoverflow.com/questions/15819663/check-if-app-is-open-during-a-gcm-onmessage-event – 2014-09-06 13:36:46

回答

0

無差異當應用程序處於前臺時,爲什麼不直接忽略GCMIntent服務中的GCM事件?

事件仍然會進入您的服務,您只是在應用程序運行時不會執行您的操作。

因此,在你GCMIntent服務,僞代碼是這樣:

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

作爲替代方案,你也可以去註冊從當應用程序正在運行GCM您的設備,這樣的消息不再發送,但我認爲這會更棘手(你將不得不記得重新註冊應用程序關閉,這可能是具有挑戰性的)。

0

有,直到你重新註冊到GCM,你可以用它

GoogleCloudMessaging.unregister

它將從抵達到您的應用程序停止消息的方法。 但它不是由谷歌開發推薦

相關問題