Android 12 Developer Preview is here! Try it out, and give us your feedback!

HiltWorker

public abstract @interface HiltWorker
implements Annotation

androidx.hilt.work.HiltWorker


Identifies a ListenableWorker's constructor for injection.

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). 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 Provider nor Lazy and must not be qualified.

Only dependencies available in the SingletonComponent can be injected into the Worker.

Summary

Inherited methods