public class CameraComponent implements LifecycleObserver {
...
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public void initializeCamera() {
if (camera == null) {
getCamera();
}
}
...
}
教程里這段代碼,在這個類收到ON_RESUME事件后,會執行initializeCamera()初始化相機,但是LifecycleObserver不是一個介面嗎,介面不是沒有具體實作嗎?
為什么這個介面可以把訊息傳過來啊?
如果說是@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)這個傳過來的,為啥可以傳過來啊,@開頭的不是java注解嗎?用來生成javadoc的,為什么可以傳遞訊息了呢?
初學者問題,大神見笑了
uj5u.com熱心網友回復:
https://www.runoob.com/w3cnote/java-annotation.htmluj5u.com熱心網友回復:
說實話,真不好理解啊(?_?) 而且這里面講的,和我這個例子感覺沒多大關系啊(?_?)
uj5u.com熱心網友回復:
注解并不都是用來生成javadoc的,也可以生成java類或者java代碼的。簡單理解就是這個注解標識你注冊了Lifecycle.Event.ON_RESUME事件的觀察。當activity resume的時候,會發出ON_RESUME event,因為你觀察此事件,此時就會執行initializeCamera方法。activit發出onresume操作是supportactiviy實作的,具體可以參考https://developer.android.com/topic/libraries/architecture/lifecycle說明
uj5u.com熱心網友回復:
你要先了解LifeCycle是干什么的,它用于監聽生命周期,降低代碼的耦合性,是Android Jetpack里面的組件uj5u.com熱心網友回復:
學了這么多天,漸漸地產生了自己的理解,我說通俗易懂一點吧,interface就是回呼,就是一個函式指標,比如一個A類,里面有個介面,那么A類中必然有地方會呼叫這個介面。如果在B類實作了這個介面,那么在一定時機,A類就自動呼叫了B類的實作函式,就是這個意思。轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/14629.html
標籤:Android
