为了账号安全,请及时绑定邮箱和手机立即绑定

关于回调的个人深刻理解

标签:
Android

我们大概先来了解一下什么是回调,如下图:

5ba0be5e00012d7103920166.jpg

从上图我们可以很直观的认识到回调的主要流程,这里我不再作详细的介绍,可以参考: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上的显示数据,只需要写上面最后一副的代码即可,不需要重复,比较的方便有效。

这就是回调和异步机制的结合。

原文链接:http://www.apkbus.com/blog-708270-63595.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消