欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
java之寫(xiě)接口回調編程經(jīng)驗改進(jìn)

1、問(wèn)題

在一個(gè)類(lèi)里面數據的變化需要在另外一個(gè)類(lèi)里面動(dòng)態(tài)得到,比如在我的異步任務(wù)里面下載的數據,需要在UI界面的ProgressDialog里面動(dòng)態(tài)顯示,我們需要在異步任務(wù)里面寫(xiě)個(gè)接口,然后接口里面有一些函數,至于在ProgressDialog顯示的時(shí)候,我們只需要重寫(xiě)接口,然后傳遞到異步任務(wù)里面去就行,一般在傳遞到異步任務(wù)里面去我們可以通過(guò)構造方法傳遞或者,set一個(gè)接口進(jìn)去。

2、一般實(shí)現辦法

這里通過(guò)構造方法傳遞接口

public class DownloadApkTask extends AsyncTask<Void, Integer, File> { 

public interface CallBack {
//開(kāi)始下載彈出進(jìn)度對話(huà)框
public void startDownload();
//更新進(jìn)度值
public void updateProgress(int progress);
//下載完成,消失對話(huà)框,并且安裝apk,需要apk的路徑
public void finishDownload(String apkPath);
//下載失敗
public void downloadFail();
}

public CallBack mCallback;

public DownloadApkTask (CallBack callback) {
this.mCallback = callback;
}

@Override
protected File doInBackground(Void... params) { 
//***
if (mCallback != null) {
mCallback.startDownload();
}
//***
}
}

3、改進(jìn)

public class DownloadApkTask extends AsyncTask<Void, Integer, File> { 

public interface CallBack {
//開(kāi)始下載彈出進(jìn)度對話(huà)框
public void startDownload();
//更新進(jìn)度值
public void updateProgress(int progress);
//下載完成,消失對話(huà)框,并且安裝apk,需要apk的路徑
public void finishDownload(String apkPath);
//下載失敗
public void downloadFail();
CallBack DEFAULT = new CallBack(){

@Override
public void startDownload() {
Log.debug(TAG, "DownloadApkTask startDownload");
}

@Override
public void updateProgress(int progress) {

}

@Override
public void finishDownload(String apkPath) {

}

@Override
public void downloadFail() {

}};
}

public CallBack mCallback = CallBack.DEFAULT;

public DownloadApkTask (CallBack callback) {
if (callback == null)
this.mCallback = CallBack.DEFAULT;
else
this.mCallback = callback;
}

@Override
protected File doInBackground(Void... params) { 
mCallback.startDownload();
}
}

我們在接口里面寫(xiě)了一匿名對象DEFAULT,然后mCallback初始化的時(shí)候,賦值為DEFAULT,然后在構造方法里面傳遞了這個(gè)接口,這里就爽我們傳遞空接口進(jìn)去也沒(méi)事,而且后面的調用接口的方法startDownload()方法的時(shí)候不需要判斷if(mCallback != null),因為我們在構造方法里面已經(jīng)做了處理,如果傳遞為空接口到構造方法里面去,我們調用startDownload()方法的時(shí)候,就會(huì )在interface CallBack里面的DEFAULT對象里面的startDownload()方法,然后打印日志,如果傳遞不是空接口到購置函數里面,調用startDownload()方法的時(shí)候,會(huì )調用外部接口回調里面的重寫(xiě)的startDownload()方法。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
android 回調機制
Android UI開(kāi)發(fā)第二十六篇——Fragment間的通信
Android AIDL(Android Interface Definition Language)介紹
基于IPC機制的進(jìn)程通信
【轉】java回調函數
一個(gè)activity中多個(gè)handler和消息的處理過(guò)程
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久