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 | |
---|---|