我正在使用ViewModel来self应用程序中的Android架构组件。在ViewModel中,我使用RxJava2订阅,我在订阅后保留Disposable对象。以前,当我在Activity中执行此操作时,我习惯于在onDestroy()中处理Disposable-以避免内存泄漏:@OverrideprotectedvoidonDestroy(){disposable.dispose();super.onDestroy();}我应该何时以及如何在ViewModel中处理它?我真的需要这样做吗? 最佳答案 使用onCleared方法
对于fragment它是advised将liveData观察者放在onActivityCreated方法中。这适用于fragment,但当我将其应用于dialogFragment时,出现以下错误:java.lang.IllegalStateException:Can'taccesstheFragmentView'sLifecycleOwnerwhengetView()isnulli.e.,beforeonCreateView()orafteronDestroyView().从这里question我读到dialogFragment在创建时的生命周期是:onAttachonCreateon
对于Android架构组件和MVVM模式,我有一些疑问。基于网络上的大多数示例,通常有简单的示例。有一个房间的实体@EntitypublicclassUser{...}拥有一个DAO@DaopublicinterfaceUserDao{...}有一个存储库publicclassUserRepository{}View模型publicclassUsersListViewModelextendsAndroidViewModel{....}现在让我们扩展它,在user旁边有user_access和user_actions例如,所以有3个表。问题:我为Room中的每个表创建实体。我应该为每个实
如果以下列方式使用,新的ViewModel类的实例可以在配置更改后继续存在:mViewModel=ViewModelProviders.of(this).get(MyViewModel.class);但是,除了配置更改之外,还存在整个应用程序进程被杀死时的保存-恢复场景。ViewModel中的字段值是否会在保存-恢复场景中保留?编辑:基于对这个问题的回答,我写了这篇文章:AndroidViewModelArchitectureComponentisDangerous 最佳答案 根据ViewModelProvider文档(检查get方
我正在使用dagger2库。每当我尝试运行我的项目时,都说无法创建View模型类的实例。我尝试创建实例的主要Activity((MovieApplication)getApplication()).getAppComponent().inject(this);mViewModel=ViewModelProviders.of(this).get(MoviesDataViewModel.class);我的工厂类publicclassViewModelFactoryimplementsViewModelProvider.Factory{privateMoviesDataViewModelmV
我目前正在为android使用databinding和MVVMarchitecture。在ViewModel中获取字符串资源的最佳方式是什么。我没有使用新的AndroidViewModel组件、eventbus或RxJava我正在经历接口(interface)的方法,其中Activity将负责提供资源。但是最近我发现了一个类似的问题this回答使用应用程序上下文的单个类在哪里提供所有资源。哪种方法更好?或者我可以尝试其他方法吗? 最佳答案 您可以通过实现AndroidViewModel而不是ViewModel来访问上下文。class
我有以下密封类:sealedclassViewModel{dataclassLoaded(valvalue:String):ViewModel()objectLoading:ViewModel()}我如何序列化/反序列化ViewModel类的实例,比如JSON格式?我尝试使用Genson序列化器/反序列化器库-它可以处理Kotlin数据类,还可以支持多态类型(例如,使用一些元数据来指定具体类型)。但是,库在Kotlinobject类型上失败,因为这些是没有公共(public)构造函数的单例。我想我可以编写一个自定义的Genson转换器来处理它,但也许有更简单的方法来做到这一点?
我有以下密封类:sealedclassViewModel{dataclassLoaded(valvalue:String):ViewModel()objectLoading:ViewModel()}我如何序列化/反序列化ViewModel类的实例,比如JSON格式?我尝试使用Genson序列化器/反序列化器库-它可以处理Kotlin数据类,还可以支持多态类型(例如,使用一些元数据来指定具体类型)。但是,库在Kotlinobject类型上失败,因为这些是没有公共(public)构造函数的单例。我想我可以编写一个自定义的Genson转换器来处理它,但也许有更简单的方法来做到这一点?
使用ViewModel和数据绑定(bind)验证表单数据的最佳方法是什么?我有一个简单的注册Activity,它链接绑定(bind)布局和ViewModelclassStartActivity:AppCompatActivity(){privatelateinitvarbinding:StartActivityBindingprivatelateinitvarviewModel:SignUpViewModeloverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)viewMode
使用ViewModel和数据绑定(bind)验证表单数据的最佳方法是什么?我有一个简单的注册Activity,它链接绑定(bind)布局和ViewModelclassStartActivity:AppCompatActivity(){privatelateinitvarbinding:StartActivityBindingprivatelateinitvarviewModel:SignUpViewModeloverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)viewMode