Wie zu injizieren in ein BroadcastReceiver
Kann jemand, der bereits zu injizieren einer bereits bestehenden Klasse, mit einigen business-Logik, in einem BroadcastReceiver mit Dolch?
Ich bin mit Dolch 1 und bereits ein schönes Beispiel ( https://github.com/adennie/fb-android-dagger ), aber ich konnte nicht herausfinden, wie wir hinzufügen können Sie eine bereits vorhandene Klasse, die gehört zu einem anderen Modul, in einem BroadcastReceiver.
Jede Hilfe oder Beratung wäre sehr dankbar.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gleiche wie Sie zu injizieren, um eine Aktivität
Könnte es zu spät sein, um diese Frage zu beantworten, aber ich werde ein Beispiel von meinem letzten Projekt, wo ich versuchte zu injizieren
AppWidgetProvider
die eine direkte Unterklasse vonBroadcastReceiver
.Müssen wir injizieren eine retrofit-service in einem
BroadcastReceiver
:Erstellen Sie eine abstrakte
@Module
für die mit abstrakten Methoden, annotiert mit@ContributesAndroidInjector
zurückgebenBroadcastReceiver
s Sie wollen zu injizieren:Wenn Sie vergessen haben, fügen Sie dieses Modul erhalten Sie eine Fehlermeldung wie:
Dann die Komponente mit den beiden Modulen neben
AndroidInjectionModule
Dann in Ihre
Application
von Ihnen implementierte KlasseHasBroadcastReceiverInjector
- Schnittstelle.Schließlich können Sie injizieren Ihre BroadcastReceiver innerhalb onReceive() vor dem Aufruf der super().
Finden Sie mehr darüber, wie zu injizieren android-Komponenten docs.
Baute ich eine kleine Probe: broadcast-Injektion.
Dolch 2 Beispiel für einfügen von Objekten in einen BroadcastReceiver.
Den BroadcastReceiverModule.kt
Den AppComponent.kt
Die Application-Klasse
Den BroadcastReceiver-Klasse
DaggerApplication
und dem Receiver verlängernDaggerBroadcastReceiver
.Habe ich es geschafft, um zu injizieren, use-cases, die in meine Sendung durch die Definition eines Moduls, die die Anwendungsfälle, die ich brauche, und ich füge das Modul auf der onReceive-Methode, überprüfen Sie den code unten:
Meine BroadcastReceiverModule:
Meine BroadCastReceiver:
Können Sie DaggerBroadcastReceiver oder Sie außer Kraft setzen können onReceive-Methode wie folgt:
Dolch Dokumente:
https://dagger.dev/api/2.24/dagger/android/DaggerBroadcastReceiver