HiltWorker


@Target(value = ElementType.TYPE)
@Retention(value = RetentionPolicy.CLASS)
@GeneratesRootInput
public annotation HiltWorker


A type annotation that 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 setWorkerFactory. 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.