Rob*_*egg 3 android android-context dagger-2 android-viewmodel android-architecture-components
我正在使用Dagger 2 DataBindng和新的Android Lifecycle组件,这些组件具有ViewModels。
在我的内部,ViewModel如何访问我的strings.xml?我在想,在第一,注入Context到viewModel,然而,这只会泄漏内存。
还有其他方法吗?
有一个AndroidViewModel,它接收Application实例作为参数。
从文档:
应用程序上下文感知ViewModel。
子类必须具有一个接受Application作为唯一参数的构造函数。
您可以strings.xml使用该参数来检索字符串。
链接中的仓库使用ViewModel而不是AndroidViewModel。如果我将ViewModel扩展为使用AndroidViewModel并包含应用程序 - 如果可以的话,它将尝试注入MyApplication而不是Application。
我已经检查了GithubBrowserSample。下面是如何UserViewModel看起来像:
public class UserViewModel extends ViewModel {
...
@Inject
public UserViewModel(UserRepository userRepository, RepoRepository repoRepository) {
...
}
...
}
这是我所做的更改:
public class UserViewModel extends AndroidViewModel {
...
@Inject
public UserViewModel(Application application, UserRepository userRepository, RepoRepository repoRepository) {
super(application);
...
}
...
}
| 归档时间: |
|
| 查看次数: |
1617 次 |
| 最近记录: |