Sobes.tech
Middle

Dagger Hilt istifadə edərək sahəyə asılılıq enjeksiyasını necə həyata keçirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Dagger Hilt istifadə edərək sahəyə asılılığı injekt etmək @AndroidEntryPoint ilə işarələnmiş sinifdə sahə bəyanatından əvvəl @Inject annotasiyasından istifadə etməklə həyata keçirilir.

import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject

@AndroidEntryPoint // Bu sinif tətbiqə injekt ediləcək
class MyActivity : AppCompatActivity() {

    @Inject // Asılılığı injekt edirik
    lateinit var myDependency: MyDependency

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ...
        myDependency.doSomething()
    }
}

@Inject annotasiyası Hilt-ə bu sahənin asılılıq tələb etdiyini göstərir. Hilt MyDependency tipi üçün uyğun təminatçı (məsələn, Dagger modulu) tapacaq və MyActivity nümunəsi yaradılarkən bu tipin nümunəsini bu sahəyə təmin edəcək.

Əhəmiyyətlidir ki, MyActivity sinfi @AndroidEntryPoint ilə işarələnməlidir ki, Hilt onun sahələrinə asılılıqları injekt edə bilsin. Həmçinin, injekt ediləcək sahə private ola bilməz.