HiltWorker
@Target([AnnotationTarget.CLASS, AnnotationTarget.FILE]) class HiltWorker
androidx.hilt.work.HiltWorker |
Identifies a androidx.work.ListenableWorker
's constructor for injection.
The Worker
will be available for creation by the androidx.hilt.work.HiltWorkerFactory
that should be set in WorkManager
's configuration via androidx.work.Configuration.Builder#setWorkerFactory(androidx.work.WorkerFactory)
. The HiltWorker
containing a constructor annotated with AssistedInject will have its dependencies defined in the constructor parameters injected by Dagger's Hilt.
Example:
@HiltWorker public class UploadWorker extends Worker { @AssistedInject public UploadWorker(@Assisted Context context, @Assisted WorkerParameters params, HttpClient httpClient) { // ... } }
@HiltAndroidApp public class MyApplication extends Application implements Configuration.Provider { @Inject HiltWorkerFactory workerFactory; @Override public Configuration getWorkManagerConfiguration() { return Configuration.Builder() .setWorkerFactory(workerFactory) .build(); } }
Only one constructor in the Worker
must be annotated with AssistedInject. The constructor must define parameters for a Assisted-annotated Context
and a Assisted-annotated WorkerParameters
along with any other dependencies. Both the Context
and WorkerParameters
must not be a type param of javax.inject.Provider
nor Lazy and must not be qualified.
Only dependencies available in the SingletonComponent can be injected into the Worker
.
Summary
Public constructors | |
---|---|
<init>() Identifies a |
Public constructors
<init>
HiltWorker()
Identifies a androidx.work.ListenableWorker
's constructor for injection.
The Worker
will be available for creation by the androidx.hilt.work.HiltWorkerFactory
that should be set in WorkManager
's configuration via androidx.work.Configuration.Builder#setWorkerFactory(androidx.work.WorkerFactory)
. The HiltWorker
containing a constructor annotated with AssistedInject will have its dependencies defined in the constructor parameters injected by Dagger's Hilt.
Example:
@HiltWorker public class UploadWorker extends Worker { @AssistedInject public UploadWorker(@Assisted Context context, @Assisted WorkerParameters params, HttpClient httpClient) { // ... } }
@HiltAndroidApp public class MyApplication extends Application implements Configuration.Provider { @Inject HiltWorkerFactory workerFactory; @Override public Configuration getWorkManagerConfiguration() { return Configuration.Builder() .setWorkerFactory(workerFactory) .build(); } }
Only one constructor in the Worker
must be annotated with AssistedInject. The constructor must define parameters for a Assisted-annotated Context
and a Assisted-annotated WorkerParameters
along with any other dependencies. Both the Context
and WorkerParameters
must not be a type param of javax.inject.Provider
nor Lazy and must not be qualified.
Only dependencies available in the SingletonComponent can be injected into the Worker
.