我们大概先来了解一下什么是回调,如下图:
从上图我们可以很直观的认识到回调的主要流程,这里我不再作详细的介绍,可以参考:http://www.2cto.com/kf/201412/365788.html
这里主要是讲解回调在异步任务机制中的运用,自己的理解和体会。
首先,我们从底层开始:
定义两个回调接口:
[代码]xml代码:
public interface IGetJSONAsyncTaskListener {//接口 void onPreGetJSON(); void onGetJSONCallback(String jsonResult); } |
然后运用回调:
[代码]xml代码:
private IGetJSONAsyncTaskListener mGetJSONAsyncTaskListener; public GetJSONAsyncTask(IGetJSONAsyncTaskListener getJSONAsyncTaskListener) { this.mGetJSONAsyncTaskListener = getJSONAsyncTaskListener; } |
异步加载显示:
[代码]xml代码:
@Override protected void onPreExecute() { this.mGetJSONAsyncTaskListener.onPreGetJSON(); } |
@Override protected void onPostExecute(String result) { this.mGetJSONAsyncTaskListener.onGetJSONCallback(result); } |
用回调把json结果写在textview上
[代码]xml代码:
GetJSONAsyncTask getJSONAsyncTask = new GetJSONAsyncTask( new GetJSONAsyncTask.IGetJSONAsyncTaskListener() { @Override public void onPreGetJSON() { } @Override public void onGetJSONCallback(final String jsonResult) { List< NewsBean > list = getJsonData(jsonResult); NewsAdapter adapter = new NewsAdapter(context, list, mListView); mListView.setAdapter(adapter);//把json结果写到textview上 } }); |
最终达到了 需要改变哪个view上的显示数据,只需要写上面最后一副的代码即可,不需要重复,比较的方便有效。
这就是回调和异步机制的结合。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦