Annotation Type HiltViewModel


  • @Target(TYPE)
    @Retention(CLASS)
    public @interface HiltViewModel
    Identifies a ViewModel for construction injection.

    The ViewModel annotated with HiltViewModel will be available for creation by the dagger.hilt.android.lifecycle.HiltViewModelFactory and can be retrieved by default in an Activity or Fragment annotated with AndroidEntryPoint. The HiltViewModel containing a constructor annotated with Inject will have its dependencies defined in the constructor parameters injected by Dagger's Hilt.

    Example:

     @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);
         }
     }
     

    Exactly one constructor in the ViewModel must be annotated with Inject.

    Only dependencies available in the ViewModelComponent can be injected into the ViewModel.

    See Also:
    ViewModelComponent