Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法解析符号';执行'。。。调用异步任务_Java_Android_Android Asynctask - Fatal编程技术网

Java 无法解析符号';执行'。。。调用异步任务

Java 无法解析符号';执行'。。。调用异步任务,java,android,android-asynctask,Java,Android,Android Asynctask,我试图对URL发出GET请求,我创建了一个扩展AsyncTask的类,并尝试调用new MyClass.execute()。。。我以前做过这件事,但它奏效了,今天它不起作用了。我做错了什么 这是我的密码: public class SignUpActivity extends AppCompatActivity { String TAG = SignUpActivity.class.getSimpleName(); String URL; ArrayList<String> co

我试图对URL发出
GET
请求,我创建了一个扩展
AsyncTask
的类,并尝试调用
new MyClass.execute()
。。。我以前做过这件事,但它奏效了,今天它不起作用了。我做错了什么

这是我的密码:

public class SignUpActivity extends AppCompatActivity {

String TAG = SignUpActivity.class.getSimpleName();
String URL;

ArrayList<String> countries = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    new MyClass.execute();
}

private class MyClass extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        //TODO
    }

    @Override
    protected Void doInBackground(Void... params) {
        HttpHandler sh = new HttpHandler();

        // Making a request to url and getting response
        String jsonStr = sh.makeServiceCall(URL, "GET");
        //Handling response in jsonStr code 
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);
        //TODO
    }

}
公共类注册活动扩展了AppCompatActivity{
String TAG=SignUpActivity.class.getSimpleName();
字符串URL;
ArrayList国家/地区=新的ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u注册);
新建MyClass.execute();
}
私有类MyClass扩展了异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//待办事项
}
@凌驾
受保护的Void doInBackground(Void…参数){
HttpHandler sh=新的HttpHandler();
//向url发出请求并获得响应
字符串jsonStr=sh.makeServiceCall(URL,“GET”);
//处理jsonStr代码中的响应
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
super.onPostExecute(结果);
//待办事项
}
}

使用此项获取数据,使用返回值返回:

   public class SignUpActivity extends AppCompatActivity {

    String TAG = SignUpActivity.class.getSimpleName();
    String URL;

    ArrayList<String> countries = new ArrayList<>();

    String jsonStr="";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sign_up);

        String response = new MyClass.execute();


    }

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

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            //TODP
        }

        @Override
        protected String doInBackground(Void... params) {
            HttpHandler sh = new HttpHandler();

            // Making a request to url and getting response
            String jsonStr = sh.makeServiceCall(URL, "GET");
            //Handling response in jsonStr code 
            return jsonStr;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            //TODO
            jsonStr = result;
        }

    }
}
公共类注册活动扩展了AppCompatActivity{
String TAG=SignUpActivity.class.getSimpleName();
字符串URL;
ArrayList国家/地区=新的ArrayList();
字符串jsonStr=“”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u注册);
String response=new MyClass.execute();
}
私有类MyClass扩展了异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//托德
}
@凌驾
受保护字符串doInBackground(无效…参数){
HttpHandler sh=新的HttpHandler();
//向url发出请求并获得响应
字符串jsonStr=sh.makeServiceCall(URL,“GET”);
//处理jsonStr代码中的响应
返回jsonStr;
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
//待办事项
jsonStr=结果;
}
}
}

这是一个语法错误。应该是

新建MyClass().execute()


不建议使用新的MyClass.execute();

只使用代码的答案。您应该解释问题、所做的更改以及它们如何解决问题。不建议使用只使用代码的答案。您应该解释问题、所做的更改以及它们如何解决问题。此外,您的
doInBackground(…)
-method中有一个悬而未决的
catch
。请更准确地回答。您忽略了(语义上重要的)
新的
public class JsonHandler {

    static String response = null;
    public final static int GET = 1;
    public final static int POST = 2;

    public JsonHandler() {

    }

    public String makeServiceCall(String url,int method) {
        return this.makeServiceCall(url, method, null);
    }

    public String makeServiceCall(String url, int method,
            List<NameValuePair> params) {

        try {
            // http client
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpEntity httpEntity = null;
            HttpResponse httpResponse = null;

            // Checking http request method type
            if (method == POST) {
                HttpPost httpPost = new HttpPost(url);

                if (params != null) {
                    httpPost.setEntity(new UrlEncodedFormEntity(params));
                }

                httpResponse = httpClient.execute(httpPost);
            } else if (method == GET) {
                if (params != null) {
                    String paramString = URLEncodedUtils.format(params, "utf-8");
                    url += "?" + paramString;
                }

                HttpGet httpGet = new HttpGet(url);
                httpResponse = httpClient.execute(httpGet);
            }

            httpEntity = httpResponse.getEntity();
            response = EntityUtils.toString(httpEntity);
        } catch (Exception e) {
        }

        return response;
    }

}
@Override
        protected  Void doInBackground(String... params) {
            // TODO Auto-generated method stub
            JsonHandler json = new JsonHandler();
            String jsonStr = json.makeServiceCall(params[0], JsonHandler.GET);

          // parse your json data here
        }