使用匕首2在kotlin的AppWidgetProvider中进行字段注入

问题描述 投票:0回答:1

我在我的项目中使用dagger2和kotlin。我已经注入了活动和视图模型,现在我想为应用程序小部件注入appwidgetprovider类。我找不到将字段注入appwidgetprovider类的方法。这是我的Dagger2实现。

这是应用程序组件类

@Singleton
@Component(
    modules = [
        UserInformationModule::class,
        AndroidInjectionModule::class,
        AppModule::class,
        MainActivityModule::class,
        ServiceBuilderModule::class]
)

interface AppComponent {
    @Component.Builder
    interface Builder {
        @BindsInstance
        fun application(application: Application): Builder

          fun build(): AppComponent
        }

    fun inject(application: BaseClass)
}

这是AppModule类

@Module(includes = [ViewModelModule::class, CoreDataModule::class])
class AppModule {

    @Singleton
    @Provides
    fun provideMyMyAppService(
        @MyAppAPI okHttpClient: OkHttpClient,
        converterFactory: MoshiConverterFactory
    ) = provideService(okHttpClient, converterFactory, MyMyAppApi::class.java)

@MyAppAPI
@Provides
fun providePrivateOkHttpClient(
    upstreamClient: OkHttpClient
): OkHttpClient {
    return upstreamClient.newBuilder().build()
}

@Singleton
@Provides
fun provideRemoteDataSource(myMyAppService: MyMyAppApi) = RemoteDataSource(myMyAppService)

@Singleton
@Provides
fun provideDb(app: Application) = AppDatabase.getInstance(app)

//other code

这是片段生成器模块

@Suppress("unused")
@Module
abstract class FragmentBuildersModule {
    @ContributesAndroidInjector
    abstract fun homeFragment(): HomeFragment

    @ContributesAndroidInjector
    abstract fun fragHome(): FragHome

    //other code
}

这是我的主要活动模块

@Suppress("unused")
@Module
abstract class MainActivityModule {
    @ContributesAndroidInjector(modules = [FragmentBuildersModule::class])
    abstract fun contributeMainActivity(): HomeActivity

    @ContributesAndroidInjector(modules = [FragmentBuildersModule::class])
    abstract fun contributeSplashActivity(): SplashActivity
}

这是我的ViewModel模块

@Suppress("unused")
@Module
abstract class ViewModelModule {
    @Binds
    @IntoMap
    @ViewModelKey(HomeViewModel::class)
    abstract fun bindHomeViewModel(viewModel: HomeViewModel): ViewModel

        ///other code
}

我尝试使用]注入appwidgetprivider类>

AndroidInjection.inject(this)

就像我在服务中所做的那样。但是此方法仅除去活动,片段,服务,广播接收者和内容提供者。请帮忙。

我正在使用匕首2.23.2和Kotlin 1.3.41

我在我的项目中使用dagger2和kotlin。我已经注入了活动和视图模型,现在我想为应用程序小部件注入appwidgetprovider类。我找不到将字段注入到...

android kotlin android-widget dagger-2 appwidgetprovider
1个回答
0
投票

可以使用注入广播接收器的相同方式注入Appprovdget provicer。通过查看提供的代码,您可以执行以下操作。创建一个抽象函数

© www.soinside.com 2019 - 2024. All rights reserved.