參考
回調(diào)函數(shù),就是回頭再調(diào)用的函數(shù)
Android回調(diào)函數(shù)機(jī)制那點(diǎn)事
所謂回調(diào)函數(shù)税灌,或者在面向?qū)ο笳Z言里叫回調(diào)方法乘盼,簡單點(diǎn)講,就是回頭在某個(gè)時(shí)間(事件發(fā)生)被調(diào)用的函數(shù)沃于。在python和javascript里涩咖,可以直接把函數(shù)當(dāng)對象傳參,這些語言都很好實(shí)現(xiàn)回調(diào)函數(shù)(方法) 繁莹。在java中檩互,回調(diào)方法是用借用接口來實(shí)現(xiàn)的。
為什么要用回調(diào)
我們都知道Java是一門面向?qū)ο蟮恼Z言咨演,有一句很著名的話就是”萬事萬物皆為對象”闸昨,我們把普通事物的共性抽取出來,而這些共性之中又充斥著特性,每個(gè)不同的特性就需要交給特定的情況處理饵较,通過暴露接口方法可以減少很多重復(fù)拍嵌,代碼更加優(yōu)雅。
打個(gè)比方循诉,Button横辆、ImageButton等都具有可被點(diǎn)擊的共性,但是被點(diǎn)擊之后相關(guān)事件的處理是不同的茄猫,比如說我想我要點(diǎn)擊的這個(gè)Button彈出一個(gè)消息提示狈蚤,然而我希望我的ImageButton點(diǎn)擊之后可以彈出一個(gè)Notifaction通知,這個(gè)時(shí)候回調(diào)方法的好處就體現(xiàn)出來了划纽,因?yàn)閍ndroid對外暴露的OnClickListener()接口中含有一個(gè)OnClick()方法脆侮,你需要怎樣的具體實(shí)現(xiàn)都由你自己定義,而這個(gè)回調(diào)方法的所在類View不會管你怎么實(shí)現(xiàn)的阿浓,它只負(fù)責(zé)調(diào)用這個(gè)回調(diào)方法他嚷,這就是使用回調(diào)的好處。