【Android Hilt 依賴注入完整教學】系列文章目錄:連結
Youtube 教學頻道:HKT線上教室
今天要跟大家分享的是如何在 Android 專案中使用 Hilt 框架來實現建構子注入(Constructor Injection)。
建構子注入是依賴注入中最推薦的注入方式,因為它:
讓我們一步一步來了解這個重要的概念。
在上一篇文章中,我們討論了成員注入(Member Injection)或欄位注入(Field Injection)的實作方式。今天要更進一步,介紹另一種更優雅的注入方式:建構子注入。
建構子(Constructor)是一個特殊的方法,用於初始化類別的新實例。它具有以下特點:
讓我們從一個簡單的例子開始:
class Product @Inject constructor(
private val alertSystem: AlertSystem
)
在這個例子中,我們使用 @Inject
標註建構子,這樣 Hilt 就知道如何建立 Product
物件。但是要注意,我們不能直接在建構子中建立 AlertSystem
的實例,而是要讓 Hilt 來處理這個依賴關係。
為了讓 Hilt 知道如何提供 AlertSystem
,我們需要在 AlertSystem
類別中也加入 @Inject
標註:
class AlertSystem @Inject constructor() {
fun alert() {
println("Alerting...")
}
}
在實際開發中,我們常常需要使用 Android 的 Context
。以下示範如何在 Hilt 中注入 Context:
class AlertSystem @Inject constructor(
@ApplicationContext private val context: Context
) {
fun alert() {
val message = context.getString(R.string.hello_world)
println(message)
println("Alerting...")
}
}
注意事項:
@ApplicationContext
標註可以注入 Application Context:@ActivityContext
注入 Activity Context:在下一篇文章中,我們將深入探討 Hilt Modules 的使用方式,包含:
透過這些進階概念的學習,您將能夠: