1. 程式人生 > >Android開發---關於回撥函式的理解

Android開發---關於回撥函式的理解

"我們之所以成功,是因為站在巨人的肩膀上!"

回撥函式(Callback)

安卓開發中,我們經常遇到回撥函式(Callback),例如onClickListener,onItemClickListener,等等....如何更好地理解這種程式邏輯呢?下面我將按照自己的理解,對回撥函式進行詳細分析.

一.舉例說明:

雙十一,我在淘寶買了架飛機.物流公司把飛機打包成快遞.------- 1
物流公司發快遞,快遞包裹在飛速趕來我家的路上.
我告訴小區傳達室:快遞這幾天會到,到了的時候給我打個電話,我來取.------- 2
過了幾天,我的快遞到了!
傳達室給我打電話,讓我去取.-------- 3
我得到了訊息,去傳達室拿到了喜愛的飛機模型.------ 4

二.對應關係:

1.快遞包裹:對應某事件,例如按鈕點選事件;按鈕長按事件;頁面滑動事件等等.

說明:不論接沒接到快遞,但是快遞已經存在了.也就是說,不論你是否點選了螢幕,滑動了螢幕,但是這些事件是客觀存在的,只不過沒有觸發.

2.告知傳達室:對應回撥函式具體邏輯,即寫在回撥函式內的,處理事件的業務邏輯.
程式碼示例:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//業務邏輯
   ...
   ...
}
});
3.快遞到達:對應事件的觸發,此時系統才呼叫回撥函式,也就是呼叫內部的方法.
程式碼示例:
mButton.setOnClickListener...//觸發事件時
4.取得快遞:系統開始執行已經寫好的,回撥函式內的業務邏輯.例如點選了某按鈕後,成功跳轉到另外一個Activity.

三.回撥函式核心思想
按上面的例子來說,即有且只有當快遞到達小區時,傳達室才會通知我.
那麼,回撥函式的核心就是:
有且只有觸發相應事件時,才會呼叫相應的程式碼邏輯. 

相關推薦

函式理解(轉載)

 想要詳細理解回撥函式的內容還需要理解與javascript單執行緒和非同步相關知識。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <

android利用函式在對話方塊中傳遞資料

android開發中,往往需要在當前activity中開啟一個輸入框來獲取使用者資料,但是怎麼將輸入框的資料傳遞到activity中呢? 一種方法是建立一個全域性變數,在對話方塊中將資料傳遞給靜態全域性變數,然後在當前activity中使用它。這種方式繁瑣而且

C++ 函式理解

http://blog.csdn.net/clirus/article/details/50350519程式設計中肯定會遇到在C++中使用回撥函式的情況。但是為什麼要使用回撥函式呢?我們需要理解回撥函式設計原理因為可以把呼叫者與被呼叫者分開。呼叫者不關心誰是被呼叫者,所有它需

Android 抽象函式以及介面更新UI

回撥函式使用,使得程式碼變得部分跟不變部分更加明顯,程式碼整體上有一個質的提升。 我是用抽象類裡寫的抽象回撥函式,通過通知註冊介面形式,可以隨時傳遞資料,接受資料。 同時我用介面函式回撥更新UI。下面

關於nodejs中的函式理解

Node的三個特點:單執行緒,非阻塞I/O,事件驅動。Node的程式設計思維就是,所有的都是非同步的,因此有了大量的回撥函式。 回撥函式,就是放在另外一個函式(如 parent)的引數列表中,作為引數傳遞給這個 parent,然後在 parent 函式體的某

js 函式理解總結

<script type="application/javascript" language="JavaScript">function dosomething(damsg, callback) {                 callback();alert(damsg);if(typeo

Android開發——(Callback)

1. 回撥函式的定義: 在A類中定義了一個方法,這個方法中用到了一個介面和該介面中的抽象方法,但是抽象方法沒有具體的實現,需要B類去實現,B類實現該方法後,它本身不會去呼叫該方法,而是傳遞給A類,供A類去呼叫。 2. 類比: 你(B類)去書店買書,結果發現想買的書賣完了,

Android開發---關於函式理解

"我們之所以成功,是因為站在巨人的肩膀上!" 回撥函式(Callback) 安卓開發中,我們經常遇到回撥函式(Callback),例如onClickListener,onItemClickListener,等等....如何更好地理解這種程式邏輯呢?下面我將按照自己的理解,對

結合Dialog的onClick()事件理解Android中的函式三部曲

App都少不了的一個需求,那就是Dialog彈窗,而且通常一個應用中都不止一個Dialog彈窗,多的時候可能達到六七個,那麼你是否會為你的應用重複寫六七個彈窗:ExitLoginDialog、DownDialog、UpdateDialog……如果是使用系統的Dialog還好,可以直接new一個

Android 函式理解

一般我們在不同的應用傳遞資料,比較方便的是用廣播和回撥函式,當然還有其他方式,這裡學學回調函式的使用;  什麼是回撥函式呢?在C/C++中,因為我們有指標這個東西,所以傳遞資料什麼的,挺方便,把那個指標地址發過來,改一下地址裡面的值即可即可;但是Java中是沒有指標這個概念的

【C/C++開發函式指標與函式

C++很多類庫都喜歡用回撥函式,MFC中的定時器,訊息機制,hook機制等待,包括現在在研究的cocos2d-x中也有很多的回撥函式。 1.回撥函式 什麼是回撥函式呢?回撥函式其實就是一個通過函式指標呼叫的函式!假如你把A函式的指標當作引數傳給B函式,然後在B函式中通過A函式傳進來的這個指標

26、【支付模組開發】——支付寶函式實現和查詢使用者訂單狀態介面編寫

####1、支付寶回撥函式實現 我們在除錯支付寶沙箱環境的時候,支護寶會有一個回撥函式,也就是在支付成功之後,可以呼叫我們支付之後需要執行的相關方法,從而達到資料庫的資料和我們的操作相統一。 首先我們先在本地將回調函式編寫好~ 在OrderController類中新建我們的支付寶回撥函式

函式 簡單理解

初學js的時候,被回撥函式搞得很暈,現在回過頭來總結一下什麼是回撥函式。   我們先來看看回調的英文定義:A callback is a function that is passed as an argument to another function and is executed af

callback函式和hook鉤子函式的簡單理解

回撥函式callback:所呼叫函式執行完,之後呼叫的函式 鉤子函式hook:訊息到達目的地之前,進行攔截,處理訊息 簡單理解: Scrapy中就有使用: 回撥函式,Request執行完下載流程之後,呼叫parse函式來解析頁面 Request(url, callback=s

理解函式

你到一個商店買東西,剛好你要的東西沒有貨,於是你在店員那裡留下了你的電話,過了幾天店裡有貨了,店員就打了你的電話,然後你接到電話後就到店裡去取了貨。在這個例子裡,你的電話號碼就叫回調函式,你把電話留給店員就叫登記回撥函式,店裡後來有貨了叫做觸發了回撥關聯的事件,店員給你打電話叫做呼叫回撥函式

前端全棧工程化開發專題 — JS中函式的深入解讀

1、回撥函式核心原理分析 js中的定時器及動畫 完整版動畫庫封裝 回撥函式初步講解 擴充套件更多的運動方式(非勻速) options物件引數的應用 ... 什麼是回撥函式? 把一個函式當做實參值傳遞給函式的形參變數(或者傳遞給函式,通過函式arguments獲取),在另外一個函

對js中函式理解

一、什麼是回撥函式 一直接觸回撥函式這個名詞,但是不知道具體是幹什麼的,今天在百度上看到了一句話讓對回撥函式產生了一點興趣,那就是回撥函式的英文解釋: A callback is a function that is passed as an argument to an

函式指標,轉移表和函式理解

函式指標 函式指標顧名思義就是將函式看做一個指標,用一個指標來儲存函式的地址 函式指標的用法: 函式指標的正確寫法是  void (*p1)() 而 void *p2() 是無法存放函式指標的,因為這是返回值為指標的函式,p1先與*結合,說明p1是一個指標,指標指向一個

關於對Java中函式理解

先來看幾段程式: 1.  首先定義一個類Caller,這個類裡面儲存一個介面引用。        public class Caller {     private MyCallInter

C語言之最好理解的通過函式指標作為引數實現函式

1、函式指標回撥解釋 回撥函式就是一個通過函式指標呼叫的函式。如果你把函式的指標(地址)作為引數傳遞給另一個函式,當這個指標被用來呼叫其所指向的函式時,我們就說這是回撥函式 2、程式碼實現 #i