从服务器获取响应时停止主线程

时间:2017-06-30 06:33:53

标签: android

  UIHelper.showProgressDialog(this);
  ValCircuitPriceController controller = new ValCircuitPriceController(PlaceOrderActivity.this, this.exchangeID, this.instrumentID, et_PriceValue.getText().toString());
  controller.start();

  if (isValCircuitPrice) {
      order.setOrderPrice(
          Double.parseDouble(et_PriceValue.getText().toString()));
      isValCircuitPrice = false;
  } else {
      break;
  }

这是我的代码我调用Controller来获取服务器的响应但是在从服务器获得响应之前我的if条件调用和isValCircuitPrice默认为false后得到响应我将使其成为现实

1 个答案:

答案 0 :(得分:0)

用户AsynTask完成此操作

private class ValCircuitPriceTask extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {
         ValCircuitPriceController controller = new 
         ValCircuitPriceController(PlaceOrderActivity.this, this.exchangeID, 
         this.instrumentID, et_PriceValue.getText().toString());
         controller.start();

        return "";
    }

    @Override
    protected void onPostExecute(String result) {
        if (isValCircuitPrice) {
            order.setOrderPrice(
            Double.parseDouble(et_PriceValue.getText().toString()));
            isValCircuitPrice = false;
        } else {
            break;
        }
    }

    @Override
    protected void onPreExecute() {
        UIHelper.showProgressDialog(this);
    }
}

最后执行你的asyntask

new ValCircuitPriceTask ().execute("");