AsyncTask not working on 4.0.4
I created a class below which goes to internet and sends a request to php script. I created it like AsyncTask
and not in main thread in order to work on 4.0.4, but when I test it, it doesn't work, although it works fine on 2.2. Do you know what is the problem?
class download extends AsyncTask<String, Integer, String> {
protected String doInBackground(String s1, String s2) {
String result = "";
//http post
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("Vreme", s1));
nameValuePairs.add(new BasicNameValuePair("Datum", s2));
InputStream is = null;
try {
String adresa = "http://senzori.open.telekom.rs/script.php";
HttpPost httppost = new HttpPost(adresa);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
}
//convert response to string
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
return result;
}
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
return null;
}
}
It's probably not working because you have overloaded doInBackground, but not called the overloaded method.
Change it so the original method is like this:
@Override
protected String doInBackground(String... params) {
return doInBackground (params[0], params[1]);
}
Note that it now makes the overload useless, move the code back into the overriden doInBackground (String... params)
, and you also need to make sure that when you call execute()
, you supply two Strings as the arguments.
上一篇: 更改Volley框架的重定向策略
下一篇: AsyncTask不适用于4.0.4