实现android异步调用WEB API的方法,并实现回调
来源:互联网 发布:人民搜索网络股份公司 编辑:程序博客网 时间:2024/05/22 04:57
上一篇文章 实现android异步调用WEB API的方法 在做完了事之后没有告诉主线程,我在这里改进一下让他在完事后可以告诉主线程,这样就比较实用了
首先定义一个接口并简单实现一下,onTaskCompleted 就是我们将来完成异步后腰回调的方法:
public interface OnTaskCompleted{ void onTaskCompleted(JSONObject result);}public class Callback implements OnTaskCompleted{ @Override public void onTaskCompleted(JSONObject result) { // do something with result here! }}
public class ApiCall extends AsyncTask { private OnTaskCompleted listener; private String result; public ApiCall(OnTaskCompleted listener){ this.listener=listener; } protected Long doInBackground(URL... urls) { int count = urls.length; long totalSize = 0; StringBuilder resultBuilder = new StringBuilder(); for (int i = 0; i < count; i++) { try { // Read all the text returned by the server InputStreamReader reader = new InputStreamReader(urls[i].openStream()); BufferedReader in = new BufferedReader(reader); String resultPiece; while ((resultPiece = in.readLine()) != null) { resultBuilder.append(resultPiece); } in.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // if cancel() is called, leave the loop early if (isCancelled()) { break; } } // save the result this.result = resultBuilder.toString(); return totalSize; } protected void onProgressUpdate(Integer... progress) { // update progress here } // called after doInBackground finishes protected void onPostExecute(Long result) { Log.v("result, yay!", this.result); // put result into a json object try { JSONObject jsonObject = new JSONObject(this.result); // call callback listener.onTaskCompleted(jsonObject); } catch (JSONException e) { e.printStackTrace(); } }}
调用就很简单了
URL url = null;try { url = new URL("http://127.0.0.0/search");} catch (MalformedURLException e) { e.printStackTrace();}new ApiCall(new Callback()).execute(url);
- 实现android异步调用WEB API的方法,并实现回调
- 实现android异步调用WEB API的方法
- 实现异步调用Web Service
- 实现异步调用 Web Service
- Java多线程实现异步调用的方法
- C# 异步实现方法调用
- PHP实现异步调用方法
- android异步加载图片并缓存到本地实现方法
- android异步加载图片并缓存到本地实现方法
- android异步加载图片并缓存到本地实现方法
- android 中异步线程的实现方法
- Android实现异步的几种方法
- Android实现异步的几种方法
- Android实现异步的几种方法
- Android实现异步的几种方法
- (八)React Native实现调用android原生java方法并实现广播的发送和接受
- web service实现原理与异步调用
- web service实现原理与异步调用
- 实现android异步调用WEB API的方法
- opencv的Mat中step的解释
- ruby的一些小技巧
- 如何将数据库由高版本降为低版本
- 关于ubuntu“下载软件仓库信息失败 检查您的网络连接“问题的解决办法
- 实现android异步调用WEB API的方法,并实现回调
- CodeSmith 使用教程(17) Merge策略
- volatile变量
- Eclipse下安装Aptana Studio 插件
- CodeSmith 使用教程: 总结
- 文人是什么
- 在ruby中,如何检查时间是否过期
- apache https反向代理设置方案
- iOS设置UILabel组件