Google is committed to advancing racial equity for Black communities. See how.

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