3 回答

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
這是一個(gè)不錯(cuò)的教程,很好地描述了回調(diào)和用例。
回調(diào)的概念是在另一個(gè)類中的某些工作完成時(shí)通知類同步/異步。有人稱其為好萊塢原則:“不要叫我們,我們叫你”。
這是一個(gè)例子:
class A implements ICallback {
MyObject o;
B b = new B(this, someParameter);
@Override
public void callback(MyObject o){
this.o = o;
}
}
class B {
ICallback ic;
B(ICallback ic, someParameter){
this.ic = ic;
}
new Thread(new Runnable(){
public void run(){
// some calculation
ic.callback(myObject)
}
}).start();
}
interface ICallback{
public void callback(MyObject o);
}
類A調(diào)用類B在線程中完成一些工作。如果線程完成了工作,它將通過(guò)回調(diào)通知Class A并提供結(jié)果。因此,無(wú)需進(jìn)行輪詢或其他操作。只要有結(jié)果,您就會(huì)得到結(jié)果。
在Android中,在“活動(dòng)”和“片段”之間使用回調(diào)。因?yàn)槠螒?yīng)該

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
我在以下情況下使用:例如,在UI中,我從按鈕獲得了操作。用戶想要下載一個(gè)500mb的文件。謝謝,我將初始化后臺(tái)引擎(AsyncTask類)并將參數(shù)傳遞給他。在用戶界面上,我將顯示一個(gè)阻止進(jìn)度對(duì)話框,并使用戶無(wú)法進(jìn)行其他任何單擊。問(wèn)題是:何時(shí)從UI刪除阻止?答案是:引擎成功或失敗的時(shí)間,以及回調(diào)或通知的時(shí)間。
通知和回調(diào)之間的區(qū)別是另一個(gè)問(wèn)題,但是1:1的回調(diào)速度更快。
添加回答
舉報(bào)