2013-09-24 64 views
0

我正在使用GCM。它的工作完美,但在註銷後,我仍然收到通知。註銷後GCM仍然收到通知

這是我的註冊:

 // Make sure the device has the proper dependencies. 
    GCMRegistrar.checkDevice(context); 

    // Make sure the manifest was properly set - comment out this line 
    // while developing the app, then uncomment it when it's ready. 
    GCMRegistrar.checkManifest(context); 

    registerReceiver(mHandleMessageReceiver, new IntentFilter(
      DISPLAY_MESSAGE_ACTION)); 

    // Get GCM registration id 
    final String regId = GCMRegistrar.getRegistrationId(context); 

    // Check if regid already presents 
    if (regId.equals("")) { 
     // Registration is not present, register now with GCM   
     GCMRegistrar.register(context, SENDER_ID); 
    } else { 
     // Device is already registered on GCM 
     if (GCMRegistrar.isRegisteredOnServer(context)) { 
      // Skips registration.    
      Toast.makeText(context, "Already registered with GCM", Toast.LENGTH_LONG).show(); 
     } else { 
      // Try to register again, but not in the UI thread. 
      // It's also necessary to cancel the thread onDestroy(), 
      // hence the use of AsyncTask instead of a raw thread. 

      mRegisterTask = new AsyncTask<Void, Void, Void>() { 

       @Override 
       protected Void doInBackground(Void... params) { 
        // Register on our server 
        // On server creates a new user 
        ServerUtilities.register(context, user, pass, regId); 
        return null; 
       } 

       @Override 
       protected void onPostExecute(Void result) { 
        mRegisterTask = null; 
       } 

      }; 
      mRegisterTask.execute(null, null, null); 
     } 
    }` 

並從不同的活動我試圖從GCM註銷:

GCMRegistrar.unregister(getApplicationContext()); 
    GCMRegistrar.onDestroy(getApplicationContext()); 

之後,我仍然收到通知:(

+0

http://developer.android.com/google/gcm/adv.html – user1309635

+1

取消註冊最多需要5分鐘才能傳播。 – user1309635

回答

0

首先, GCMRegistrar已棄用

二,unregister()表示該設備不應該再次接收消息。經常註冊和取消註冊不是應用程序的行爲。如果你想停止接收消息,告訴你的應用服務器停止發送它們