2016-04-06 13 views
0

IntentServiceを拡張してRegistrationIntentServiceクラスを実装し、onHandleIntentの内部にデバイストークンを取得しました。GCMによるプッシュ通知 - IntentServiceの起動時期

私はこのサービスをいつ開始するのですか?アプリが起動したときにMainActivityで開始すると、onHandleIntentは呼び出されません。意図を開始するための適切な方法は何時ですか?

答えて

0

GitHubのGCM's project MainActivtyを見てください。とても簡単です&簡単です。

具体的には、あなたはcheckPlayServices()がtrueの場合RegistrationIntentSericeを呼び出す必要があります。..

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'は決して呼び出されません –

関連する問題