我要通過Android記事本教程:http://developer.android.com/resources/tutorials/notepad/notepad-ex2.html將菜單相關事件稱爲「回調函數」是否有意義?
在Notepadv2,第5步,它說:
onListItemClick()是我們覆蓋的回調方法。
我對回調的概念有點新,但從研究中,我的理解是,回調是您在一個進程中提供的代碼,當另一個進程達到某個結果時執行該進程。是什麼讓這個特殊事件成爲回調,而不是其他事件?
這是一個回調,因爲它只在用戶做某事時調用(在這種情況下,點擊一個列表項)?但是,如果是這樣的話,任何事件都不能被認爲是一個回調,因爲只有當它自身以外的事情發生時纔會調用它。或者我錯過了什麼?
感謝您幫助我理解這一點。我仍然得不到的是 - 如果回調的要求是傳遞了一段代碼或一段代碼引用,那麼在這種情況下,我在哪裏傳遞該代碼?我不必告訴其他代碼來調用該方法,它將其作爲事件的結果。它是否滿足作爲回調的要求,因爲它是從我自己寫的模塊中調用的,即使我不必將該方法傳遞給其他代碼? – Joseph
再看一下示例代碼,它包括這個 'startActivityForResult(i,ACTIVITY_EDIT);' 我想這個常量是正在傳遞的「引用代碼」嗎?在這種情況下,當外部代碼最終回調時,它會將該常量的值傳遞給'onActivityResult()'(我寫),所以我知道如何解釋它對我的函數的調用? 它實際回調的函數是'onActivityResult()'。這不會讓這個回調?或者這只是一個語義問題? – Joseph
「它是否滿足要求作爲回調,因爲它是從我自己寫的模塊中調用的,儘管我不必將該方法傳遞給其他代碼?」 - 是的。在面向對象編程中,它被稱爲「繼承」。 「我想這個常數是正在通過的」代碼引用「?」 - 沒有。 「它會傳遞這個常數的價值......所以我知道如何解釋它對我的函數的調用?」 - 是的。 「或者這只是一個語義問題?」 - 如果您不喜歡那裏的文檔,歡迎您編寫自己的Android文檔。 – CommonsWare