OnBootComplete Dagger 2不起作用

时间:2018-03-09 15:06:26

标签: android broadcastreceiver dagger-2

嗨我有下面的广播接收器,它检索一个onboot完成来做一些事情,但它没有说没有找到接收器的喷射器工厂绑定。

我的猜测是,如果没有用户手动启动应用程序,匕首无法初始化?

class BootReceiver : DaggerBroadcastReceiver(){

    @Inject
    lateinit var storageClearSchedular: StorageClearSchedularContract

    override fun onReceive(context: Context?, intent: Intent?) {
        super.onReceive(context, intent)
        Log.d(BootReceiver::class.java.simpleName,"Starting up schedulers for clearing cache")
        storageClearSchedular.setAllSchedulars()
    }
}

错误:

引起:java.lang.IllegalArgumentException:没有为类

绑定的注入器工厂

1 个答案:

答案 0 :(得分:2)

没有为您的BroadcastReceiver绑定注入工厂,因为没有提供它的组件。首先,您需要创建一个新模块,例如ReceiversBindingModule

@Module
interface ReceiversBindingModule {
    @ContributesAndroidInjector
    fun provideBootReceiver(): BootReceiver
}

然后您需要将其添加到AppComponent

@Component(modules = [
    ...
    ReceiversBindingModule::class,
    ...])
class AppComponent