亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于回調的個人深刻理解

標簽:
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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消