public class RegistrationIDReceiver extends IntentService {
  private final RegistrationIDRegistrar registrar = RegistrationIDRegistrar.getInstance();
  private static final String EXTRA_ERROR = "error";
  private static final String EXTRA_REGISTRATION_ID = "registration_id";

  public RegistrationIDReceiver() {
    super(Constants.C2DM_APPLICATION_SERVER_ID);
  }

  @Override
  public final void onHandleIntent(Intent intent) {
    Log.d(Constants.TAG, "Received intent to register");
    final String registrationId = intent.getStringExtra(EXTRA_REGISTRATION_ID);
    String error = intent.getStringExtra(EXTRA_ERROR);
    if (error == null) {
      registerDevice(registrationId);
    } else {
      handleRegistrationError(error);
    }
  }

  private void registerDevice(String registrationId) {
    Log.d(Constants.TAG, "Will now register device with ID: " + registrationId);
    try {
      registrar.registerIdWithC2DMService(registrationId);
    } catch (RegistrationException e) {
      Log.e(Constants.TAG, e.getMessage(), e);
    }
  }

  private void handleRegistrationError(String error) {
    Log.e(Constants.TAG, "Registration error " + error);
    Log.e(Constants.TAG, "Please click the registration button again to register the device.");
  }
}
 private void registerDevice(String registrationId) {
   Log.d(Constants.TAG, "Will now register device with ID: " + registrationId);
   try {
     registrar.registerIdWithC2DMService(registrationId);
   } catch (RegistrationException e) {
     Log.e(Constants.TAG, e.getMessage(), e);
   }
 }