WorkerInject
public
abstract
@interface
WorkerInject
implements
Annotation
| androidx.hilt.work.WorkerInject |
Identifies a ListenableWorker's constructor for injection.
Similar to Inject, a Worker containing a constructor annotated
with WorkerInject will have its dependencies defined in the constructor parameters
injected by Dagger's Hilt. The Worker will be available for creation by the
HiltWorkerFactory that should be set in WorkManager's
configuration via
Configuration.Builder.setWorkerFactory(androidx.work.WorkerFactory).
Example:
public class UploadWorker extends Worker {
@WorkerInject
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 WorkerInject. 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 Provider nor Lazy and must not be qualified.
Only dependencies available in the ApplicationComponent
can be injected into the Worker.
Summary
Inherited methods | |
|---|---|