HiltWorker


@Target(value = ElementType.TYPE)
@Retention(value = RetentionPolicy.CLASS)
@GeneratesRootInput
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.