为什么不能在AsyncTask中使用if / else?

par曲霉

为什么我不能在AsyncTast中使用if / else块

当我尝试使用if / else时,将其抛出“语法错误”。

这是我的代码垃圾。

    package com.xyz.asd;

    @SuppressLint("NewApi")
    public class MapActivity extends Activity implements LocationListener {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_map);
            locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    // taking location by GPS / network 
            if(location!=null)
            {
    // move camear to latlong by locationManager 
    new HttpGetTask().execute();
            }
            else
            {
                // pass hard coded lat long to move camera
                new HttpGetTask().execute();
            }

            if (location != null) {
    //Display some toast
            }
        }
        @Override
        protected void onPause() {
    // bla bla
        }
        @Override
        protected void onResume() {
    // bla bla
        }
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
    // bla bla
        }
        @Override
        public void onLocationChanged(Location location) {
            // TODO Auto-generated method stub
        }
        public boolean onOptionsItemSelected(MenuItem item) {
    // bla bla             
            }
        }
        @Override
        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub
    //bla 
        }
        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub
    //bla
        }
        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub
        }


        private class HttpGetTask extends AsyncTask<Void, Void, String> {
            protected void onPreExecute() {
                super.onPreExecute();
                // Showing progress dialog
            }
            Double lat = locationManager.getLastKnownLocation(provider)
                    .getLatitude();
            Double lng = locationManager.getLastKnownLocation(provider)
                    .getLongitude();

**//*************************PROBLEM IN IF ELSE***********************************
            if(lat != null && lng!= null)
            {String URL = "http://xyz.in/api/stores/around_me.json?app_id=test&lat="
                    + lat + "&lng=" + lng; }
            else
            {
            String URL = "http://xyz.in/api/stores/around_me.json?       
                               app_id=test&lat=12.58&lng=77.38";
            }
//********************************************************************************

            AndroidHttpClient mClient = AndroidHttpClient.newInstance("");
            @Override
            protected String doInBackground(Void... params) {


                HttpGet request = new HttpGet(URL);

                ResponseHandler<String> responseHandler = new BasicResponseHandler();
                try {
                    return mClient.execute(request, responseHandler);
                } catch (ClientProtocolException exception) {
                    exception.printStackTrace();
                } catch (IOException exception) {
                    exception.printStackTrace();
                }
                return null;
            }
            @Override
            protected void onPostExecute(String result) {
                if (pDialog.isShowing())
                    pDialog.dismiss();
                try {

    //JSON parsing 
                    }
                });
                if (null != mClient)
                    mClient.close();
            }
        }
    }

有人可以建议我什么/为什么显示此行为?我错了吗?我该如何纠正将有效URL传递给http get请求的条件?

韦斯顿

如果不是任何方法。它只是在课堂上输了。将其放入后台do或更好的自身方法中:

private String getUrl(Double lat, Double long) {
   if(lat != null && lng!= null) {
      String URL = "http://xyz.in/api/stores/around_me.json?app_id=test&lat="
                + lat + "&lng=" + lng;
      return URL;
   }
   else {
      String URL = "http://xyz.in/api/stores/around_me.json?       
                           app_id=test&lat=12.58&lng=77.38";
      return URL;
   }
}

正如其他答案所指出的,如果条件也有问题。放置在有效位置后,情况应该会更加清楚。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章