원문 페이지 : https://developer.android.com/reference/androidx/hilt/work/HiltWorker
HiltWorker
A type annotation that identifies a androidx.work.ListenableWorker's constructor for injection.
The HiltWorker containing a constructor annotated with AssistedInject will have its dependencies defined in the constructor parameters injected by Dagger's Hilt.
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.
HiltWorker는 AssistedInject 로 어노테이티드된 생성자를 포함하는데, 이는 Dagger의 Hilt에 의해 주입된 생성자 파라미터안에 정의된 dependencies를 가지게 한다.
Worker의 생성자 하나만 AssistedInject로 주석을 달아야 한다.
생성자는 다른 종속성과 함께 Assisted-annotated Context 및 Assisted-annotated WorkerParameters에 대한 매개변수를 정의해야 한다.
Context 및 WorkerParameters는 모두 javax.inject.Provider 또는 Lazy의 유형 매개변수가 아니어야 하며 qualified되어서는 안 됩니다.
요약하면 HiltWorker를 통해 Dagger-Hilt로 주입된 생성자 파라미터를 활용할 수 있게 된다는 것
2023-5-28 추가
Assist는 Viewmodel 초기화시 직접 파라미터를 주입하기 위해 사용되는 애노테이션이며, 사용 예제는 아래와 같음
@HiltViewModel
class PlazaViewModel @AssistedInject constructor(
@Assisted private val fetchQuery : Query,
//쿼리 예시 val gatheringCollectionQuery: Query = if(lastDocumentSnapshot == null) gatheringCollectionRef.orderBy("writingTime", Query.Direction.DESCENDING).limit(pageSize.toLong())
// else gatheringCollectionRef.orderBy("writingTime", Query.Direction.DESCENDING).startAfter(lastDocumentSnapshot!!).limit(pageSize.toLong())
private val firestore: FirebaseFirestore,
private val dataSource : PostingDataSource
) : PlazaViewModelInterface, ViewModel()
{
@AssistedFactory
interface PlazaViewModelFactory { fun create(fetchQuery: Query): PlazaViewModel }
val factory = assistedViewModelFactory.create(fetchQuery)
val plazaViewmodel: PlazaViewModel = hiltViewModel<PlazaViewModel>(backStackEntry)
'Android Dev' 카테고리의 다른 글
Firebase - Room synchronizable network + AndroidTest 예제 (0) | 2022.11.28 |
---|---|
android 3 button 용어 (0) | 2021.12.04 |
compose - font, fontFamily 설정 (0) | 2021.11.06 |
Compose - layout size, measure and set programatically. (0) | 2021.11.06 |
Compose - tint color 조절 (0) | 2021.11.05 |