2016-04-06 23 views
0

我已经实现了类RegistrationIntentService,它扩展了IntentService并获得onHandleIntent中的设备令牌。使用GCM推送通知 - 何时启动IntentService?

我的问题是,我应该什么时候开始这项服务?如果我在应用启动时通过MainActivity开始,则不会调用onHandleIntent。什么时候什么时候开始意图的正确方式?

回答

0

看看GitHub上的GCM's project MainActivty,很简单&简单。

具体而言,需要调用RegistrationIntentSerice如果checkPlayServices()是真的..

private boolean checkPlayServices() { 
    GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance(); 
    int resultCode = apiAvailability.isGooglePlayServicesAvailable(this); 
    if (resultCode != ConnectionResult.SUCCESS) { 
     if (apiAvailability.isUserResolvableError(resultCode)) { 
      apiAvailability.getErrorDialog(this, resultCode, PLAY_SERVICES_RESOLUTION_REQUEST) 
        .show(); 
     } else { 
      Log.i(TAG, "This device is not supported."); 
      finish(); 
     } 
     return false; 
    } 
    return true; 
} 

声明checkPlayServices()方法后,您需要检查它是否是真实和运行服务:

if (checkPlayServices()) { 
     // Start IntentService to register this application with GCM. 
     Intent intent = new Intent(this, RegistrationIntentService.class); 
     startService(intent); 
    } 
+0

我的实现并没有太大的不同。我从'MainActivity'调用'startService(intent)',但是'onHandleIntent'永远不会被调用 –