ViewModelInject
public
abstract
@interface
ViewModelInject
implements
Annotation
androidx.hilt.lifecycle.ViewModelInject |
This @interface is deprecated.
Use
HiltViewModel.
Identifies a ViewModel
's constructor for injection.
Similar to Inject
, a ViewModel
containing a constructor annotated
with ViewModelInject
will have its dependencies defined in the constructor parameters
injected by Dagger's Hilt. The ViewModel
will be available for creation by the
HiltViewModelFactory
and can be retrieved by default in an Activity
or Fragment
annotated with
AndroidEntryPoint.
Example:
public class DonutViewModel extends ViewModel { @ViewModelInject public DonutViewModel(@Assisted SavedStateHandle handle, RecipeRepository repository) { // ... } }
@AndroidEntryPoint public class CookingActivity extends AppCompatActivity { public void onCreate(Bundle savedInstanceState) { DonutViewModel vm = new ViewModelProvider(this).get(DonutViewModel.class); } }
Only one constructor in the ViewModel
must be annotated with ViewModelInject
. The
constructor can optionally define a Assisted
-annotated
SavedStateHandle
parameter along with any other dependency. The
SavedStateHandle
must not be a type param of Provider
nor
Lazy and must not be qualified.
Only dependencies available in the
ActivityRetainedComponent
can be injected into the ViewModel
.
Summary
Inherited methods | |
---|---|