Android使用AsyncTask异步线程网络通信获取数据(get json)
2014-07-14 20:13
726 查看
摘要:
android 4.0以上强制要求不能在主线程执行耗时的网络操作,网络操作需要使用Thead+Handler或AsyncTask,本文将介绍AsyncTask的使用方法。
内容:
1.添加HttpTask.java
2.调用使用:
原文:
王懿璞.Android:网络操作2.3等低版本正常,4.0(ICS)以上出错,换用AsyncTask异步线程get json[2014-07-14](2013-03-19)./article/4992262.html
android 4.0以上强制要求不能在主线程执行耗时的网络操作,网络操作需要使用Thead+Handler或AsyncTask,本文将介绍AsyncTask的使用方法。
内容:
1.添加HttpTask.java
public class HttpTask extends AsyncTask<String, Integer, String> { private static final String TAG = "HTTP_TASK"; @Override protected String doInBackground(String... params) { // Performed on Background Thread String url = params[0]; try { String json = new NetworkTool().getContentFromUrl(url); return json; } catch (Exception e) { // TODO handle different exception cases Log.e(TAG, e.toString()); e.printStackTrace(); return null; } } @Override protected void onPostExecute(String json) { // Done on UI Thread if (json != null && json != "") { Log.d(TAG, "taskSuccessful"); int i1 = json.indexOf("["), i2 = json.indexOf("{"), i = i1 > -1 && i1 < i2 ? i1 : i2; if (i > -1) { json = json.substring(i); taskHandler.taskSuccessful(json); } else { Log.d(TAG, "taskFailed"); taskHandler.taskFailed(); } } else { Log.d(TAG, "taskFailed"); taskHandler.taskFailed(); } } public static interface HttpTaskHandler { void taskSuccessful(String json); void taskFailed(); } HttpTaskHandler taskHandler; public void setTaskHandler(HttpTaskHandler taskHandler) { this.taskHandler = taskHandler; } }
2.调用使用:
HttpTask task = new HttpTask(); task.setTaskHandler(new HttpTaskHandler(){ public void taskSuccessful(String json) { try { JSONObject jsonObj = new JSONObject(json); String demo = jsonObj.getString("demo"); } catch (Exception e) { e.printStackTrace(); } } public void taskFailed() { } }); task.execute("http://www.yourdomain.com/api/getjson");
原文:
王懿璞.Android:网络操作2.3等低版本正常,4.0(ICS)以上出错,换用AsyncTask异步线程get json[2014-07-14](2013-03-19)./article/4992262.html
相关文章推荐
- Android 使用 AsyncTask异步加载 和 接口回调 获取联网获取到的 json数据 工具类
- 使用基于Android网络通信的OkHttp库实现Get和Post方式简单操作服务器JSON格式数据
- android 线程实现异步网络数据获取
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- Java基础知识强化之网络编程笔记15:Android网络通信之 Android异步任务处理(AsyncTask使用)
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- Android异步任务AsyncTask使用解析 获取网络图片
- Android使用HTTP GET、HTTP POST获取网络数据
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- 在线程中使用HttpClicent获取网络数据(get和post两种方式)
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- Android之网络----使用HttpClient发送HTTP请求(通过get方法获取数据)
- Java基础知识强化之网络编程笔记18:Android网络通信之 使用HttpClient的Post / Get 方式读取网络数据(基于HTTP通信技术)
- Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析
- android HttpGet 另开线程获取网络数据问题
- Android HttpURLConnection(Get,Post方式)进行网络通信 获取数据和网络图片
- Android中基于HTTP的通信技术(1)使用Http的Get方式读取网络数据
- Android Studio利用异步任务AsyncTask发送post请求获取json数据
- 使用AsyncTask异步加载类进行访问网络数据json的理解和用法