@Override
  protected void onHandleIntent(Intent intent) {
    Log.d(TAG, "handle new location request.");

    int seq = intent.getIntExtra("seq", -1);
    String type = intent.getStringExtra("type");
    String id = intent.getStringExtra("id");
    if (TextUtils.isEmpty(type) || TextUtils.isEmpty(id)) {
      Log.d(TAG, "LocationIntentService got invaild intent.");
      return;
    }

    synchronized (mSyncObject) {
      if (mLocationClient != null) {
        int retCode = mLocationClient.requestLocation();
        Log.d(TAG, "retCode:" + retCode);
        try {
          mSyncObject.wait();
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
      }
    }
    if (MainActivity.VISIBLE
        || !PrefUtil.getbooleanValue(getApplicationContext(), "pref_loc_me_silent_enable", false)) {
      MessageHelper.sendServerMsgToList(
          seq, "client", getString(R.string.loc_sending_loc), getApplicationContext());
    }
    sendResultToServer(formatResponse(id));
    Log.d(TAG, "LocationIntentService exit intent.");
  }
 private void sendResultToServer(String broadcast) {
   MessageHelper.sendBackgroundMsgToServer(getApplicationContext(), broadcast);
 }