当使用Hilt进行依赖注入时,可以通过使用@ViewModelInject
注解来标记ViewModel的构造函数,并在构造函数中接收运行时参数。具体步骤如下:
public class MyViewModel extends ViewModel {
private String runtimeParam;
@ViewModelInject
public MyViewModel(String runtimeParam) {
this.runtimeParam = runtimeParam;
}
// 其他ViewModel的逻辑代码
}
@AndroidEntryPoint
注解标记,并通过构造函数注入ViewModel。同时,传递运行时参数给ViewModel的构造函数:@AndroidEntryPoint
public class MyActivity extends AppCompatActivity {
@Inject
MyViewModel myViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ...
String runtimeParam = "Hello, Hilt!";
myViewModel = new ViewModelProvider(this).get(MyViewModel.class, runtimeParam);
// 使用myViewModel进行业务逻辑处理
}
}
在上述代码中,我们使用ViewModelProvider
的get()
方法来获取ViewModel的实例,并传递运行时参数给构造函数。
需要注意的是,为了使Hilt能够正确注入ViewModel,还需要在Application类上添加@HiltAndroidApp
注解,并在相应的模块中配置Hilt的依赖注入规则。
领取专属 10元无门槛券
手把手带您无忧上云