【发布时间】:2014-08-29 12:55:58
【问题描述】:
我正在尝试使用 AsyncTask 捕获 httpclient 的响应,但在验证字符串中的任何不兼容 doInBackground 时抛出以下错误:
“返回类型与AsyncTask不兼容”
我尝试捕获httpclient的响应字符串并在doInBackground中返回它以便在onPostExecute中使用它。
有人可以帮助我。
谢谢
private String insertar(){
String response = "";
HttpClient httpclient;
List<NameValuePair> nameValuePairs;
HttpPost httppost;
httpclient=new DefaultHttpClient();
httppost= new HttpPost("http://10.1.1.20/pruebaAndroid/insert.php"); // Url del Servidor
//Añadimos nuestros datos
nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("dni",dni.getText().toString().trim()));
nameValuePairs.add(new BasicNameValuePair("nombre",nombre.getText().toString().trim()));
nameValuePairs.add(new BasicNameValuePair("telefono",telefono.getText().toString().trim()));
nameValuePairs.add(new BasicNameValuePair("email",email.getText().toString().trim()));
try {
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));// envio las variables
// capturo lo que devuelve, si no devolviera nada solo hago la ejecucion del httpclient sin el handler
ResponseHandler<String> responseHandler = new BasicResponseHandler();
response = httpclient.execute(httppost, responseHandler);
//----------------------------------------------------------------
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return response;
}
这是异步任务:
//AsyncTask para insertar Personas
class Insertar extends AsyncTask<String,String,Boolean>{
private Activity context;
Insertar(Activity context){
this.context=context;
}
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
String result = insertar();
return result;
}
@Override
protected void onPostExecute(Boolean result) {
}
}
【问题讨论】:
-
发布 AsyncTask 的声明。
-
var 像 String 一样声明
-
好的,但是,
post the declaration of the AsyncTask.(有趣的是,每当一个人说多于 1 件事时,除了最后一个之外的所有事情都会立即被驳回)(显然每个人都会这样做) -
用我的 AsyncTask 完成检查我的编辑代码
-
您定义异步任务的方式,
doInBackground必须返回一个布尔值。
标签: android string android-asynctask