我是 Android 开发新手。我的问题是,我是否使用 AsyncTask 来发出 HTTP GET 请求(JSON 响应)?这个对吗?如果这确实是真的,有谁知道我在哪里可以看到这方面的例子?如果不是,你能纠正我吗?谢谢!
最佳答案
是的,你没看错,Asynctask 用于短时间运行的任务,例如连接到网络。它还用于后台任务,这样您就不会阻塞 UI 线程或出现异常,因为您无法在 UI/主线程中进行网络连接。
示例:
class JSONAsyncTask extends AsyncTask<String, Void, Boolean> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Boolean doInBackground(String... urls) {
try {
//------------------>>
HttpGet httppost = new HttpGet("YOU URLS TO JSON");
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httppost);
// StatusLine stat = response.getStatusLine();
int status = response.getStatusLine().getStatusCode();
if (status == 200) {
HttpEntity entity = response.getEntity();
String data = EntityUtils.toString(entity);
JSONObject jsono = new JSONObject(data);
return true;
}
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return false;
}
protected void onPostExecute(Boolean result) {
}
关于Android:AsyncTask 发出 HTTP GET 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24399294/