Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – AsyncTask – 扩展和doInBackground需要哪些参数?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用AsyncTask的代码有什么问题?特别是:
– 我需要在fetchSchools中放入哪些参数
– 我需要在doInBACkground中放入哪些参数?

发现了许多“有用的”示例,但它们都在这些参数中使用了伪代码,并没有解释我实际需要放在那里的内容.

“我得到Eclipse错误方法fetchSchools必须实现继承的抽象方法AsynchTask …”

我不需要传递任何东西,我希望它返回一个字符串.

public class fetchSchools extends AsyncTask<Void,Void,String> {

public String doInBACkground(String retval) {
       StringBuilder builder = new StringBuilder();
        httpClient client = new DefaulthttpClient();

        httpGet httpGet = new httpGet("http://www.domain/schools.PHP");
        try 
     {
          httpResponse response = client.execute(httpGet);
          StatusLine statusLine = response.getStatusLine();
          int statusCode = statusLine.getStatusCode();
          if (statusCode == 200) {
            httpentity entity = response.getEntity();
            InputStream content = entity.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(content));
            String
     line;

            int a=0;
            while ((line = reader.readLine()) != null) {
              builder.append(linE);
            Log.i(MainActivity.class.getName(),"Reading in: " + a +" : "+ linE);
            a++;
            }
          } else {
            Log.e(MainActivity.class.toString(),"Failed to download file");
          }
        } catch (ClientProtocolException E) {
          e.printStackTrace();
        } catch (IOException E)
     {
          e.printStackTrace();
        }

        return builder.toString(); 
}

protected void onPostExecute() {
}

}

解决方法

你给了doInBACkground一个字符串参数,所以async task first参数必须是String not void.

AsyncTask<String,String> {

如果您不想传递参数,请不要为doInBACkground函数提供参数.

检查此页面获取asynctask参
http://developer.android.com/reference/android/os/AsyncTask.html

asynctask的第一个参数转到doInBACkground函数,第二个参数转到onprogressupdate函数,第三个参数转到onpostexecute函数.

我想你想这样做:

public class fetchSchools extends AsyncTask<Void,String> {
    @Override
    protected String doInBACkground(Void... arg0) {
      StringBuilder builder = new StringBuilder();
      httpClient client = new DefaulthttpClient();
      // ...

     return builder.toString();
    }
    protected void onPostExecute(String retval) 
    {

    }
  }

大佬总结

以上是大佬教程为你收集整理的android – AsyncTask – 扩展和doInBackground需要哪些参数?全部内容,希望文章能够帮你解决android – AsyncTask – 扩展和doInBackground需要哪些参数?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。