淺談Android的回調

C不會本身調用b,C提供b的目的就是讓S來調用它,並且C不得不提供。S並不知道C提供的b是什麼,所以S會約定b的接口規範(函數原型),而後由C提早經過S的一個函數r告訴S本身將要使用b函數(即註冊)。r爲註冊函數。java

簡單來講:android

回調函數就是預留給系統調用的函數,並且咱們每每知道該函數被調用的時機架構

接下來咱們看一下完善後的這幅圖。     框架

從這幅圖中咱們應該大體瞭解了回調的基本流程。函數

咱們已經大概知道了回調的基本流程,下面,來看看Android中回調的基本使用。.net

回調方法就是一個經過方法指針來調用的方法。若是我將這個方法的指針(地址,引用)經過形參傳遞到另外一個類的某個方法裏,那麼當這個類調用該方法裏面我所傳入的指針時,就能調用我這邊的方法。設計

  整個過程就是我傳入方法A的地址,你接收,並在某個時刻回調我這邊的A方法。指針

  因爲java沒辦法操做指針,因而它用接口來實現。code

  JAVA方法回調是一種耦合設計思想。做爲一種架構,必須有本身的運行環境,而且提供用戶的實現接口。對象

  主要步驟以下:

定義接口 Callback ,包含回調方法 callback();服務端提供註冊的方法,並設定在某個條件下會回調接口方法;客戶端提供接口的實現方法,並註冊到服務端,把方法地址傳進去。這樣,在須要的時候,可用Caller對象的mCallback接口成員調用callback()方法,完成回調了。

android 中回調機制被大量使用。

好比,在Activity中定義了不少生命週期的不一樣狀態要調用的方法,這些方法都是空實現,系統框架要調用,用戶也要調用來實現。或者更直接的是按鍵點擊的實現方法。

     OnClickListener就是android 系統所約定好的接口,而後咱們寫的應用程序就是客戶端,android 系統就是服務端。

     接口(系統框架)是系統提供的,接口的實現是用戶實現的,這樣能夠達到接口統一,實現不一樣的效果。

     系統在不一樣的狀態「回調」咱們的實現類,來達到接口和實現的分類。

相關文章
相關標籤/搜索