hilt - @HiltViewModel

2021. 1. 29. 17:09Android/DI(dependency injection)

Hilt로 ViewModel 객체 삽입

@ViewModelInject(Deprecated) -> @HiltViewModel 변경됨

 

HiltView Model로 주석이 달린 View Model은 "dagger.hilt.android.lifecycle.dagger.hilt.android.lifecycle.HiltViewModelFactory"

의해 생성 됩니다.

 

기본적으로 Android EntryPoint로 주석이 달린 Activity 또는 Fragment에서 검색할 수 있습니다.

 

Inject로 주석이 달린 생성자를 포함하는 "HiltView Model"은 Dagger's Hilt에 의해 주입된 생성자 매개 변수에 종속성이 정의된다.

 

 @HiltViewModel
 public class DonutViewModel extends ViewModel {
     @Inject
     public DonutViewModel(SavedStateHandle handle, RecipeRepository repository) {
         // ...
     }
 }
 @AndroidEntryPoint 
 public class CookingActivity extends AppCompatActivity {
     public void onCreate(Bundle savedInstanceState) {
         DonutViewModel vm = new ViewModelProvider(this).get(DonutViewModel.class);
     }
 } 
 

출처 : dagger.dev/api/latest/dagger/hilt/android/lifecycle/HiltViewModeldagger.dev/api/latest/dagger/hilt/android/lifecycle/HiltViewModel