AndroidArchitectureComponents提供LiveData和ViewModel类,它们对生命周期更友好,专为更精简的Activity/Fragment而设计。这些类处理跨配置更改的数据存储,但与Activity框架API相比,我对它们的使用感到困惑。onSaveInstanceState(Bundle)和onRestoreInstanceState(Bundle)对于保存Activity状态是否仍然必要或有用? 最佳答案 onSaveInstanceState和onRestoreInstanceState仍然有用
在我的android应用程序中,我遵循具有mvvm模式的架构组件。我的应用程序进行网络调用以显示天气信息。api调用是从存储库进行的,该存储库将响应的实时数据返回到View模型,而我的主要Activity又观察到它。除了一种情况外,该应用程序工作正常,每当我断开互联网以测试失败案例时,它都会根据需要扩大错误View在错误View中我有一个重试按钮,它使方法调用再次观察View模型(这个方法也是第一次被oncreate()调用,有效)即使在打开Internet并单击监听observable的重试按钮后,数据仍然变为空。我不知道为什么,请大家帮忙存储库@Singletonpubliccla
我在AndroidViewModel类中使用LiveData我需要等待响应,但在某些情况下我需要从本地检查一些值共享首选项,不会阻塞任何线程。对于这些场景,我没有使用LiveData。这就是我在activityclass中所做的。homeViewModel.sendTokenToServer().observe(this,isFCMSendToServer->{Toast.makeText(this,"FCMTokenObservercalled",Toast.LENGTH_SHORT).show();});//WithoutLiveDataif(homeViewModel.isUpg
我正在尝试创建一个将使用MVVM架构的应用程序,但有一件事我不太明白。Android官方文档说在ViewModel中引用Activity上下文不是一个好主意(因为ViewModel可能比Activity长寿)所以当我想在Activity恢复时执行某些操作时,我开始怀疑用例。我知道ViewModel不应该自己执行业务逻辑,但即使我使用了一些服务类(假设GPSService必须启动和暂停,每次Activity在暂停时恢复),并且在这个服务中我对ActivityonResume使用react(使用生命周期观察者)我仍然会从ViewModel引用此Activity,因为我引用的服务包含对正在观
我无法让ViewModel组件与Proguard一起工作。我已经必须添加以下内容以防止由于NoSuchMethodException导致崩溃:init()-keepclasscom....SlideshowViewModel{*;}但是,我在Activity中的观察者没有收到任何数据。这在我启用Proguard之前工作正常,所以我知道Proguard是原因,我只是不知道为什么(这里是新手Proguardian)。我需要添加什么规则才能使observables正常工作?我的ViewModel(Kotlin)中有以下内容valcurrentItem=MediatorLiveData()..
我一直在尝试使用View模型和实时数据在fragment之间共享信息。但是,当我从第一个fragment更改为另一个fragment时,我的View模型似乎已重新初始化,这让我丢失了之前存储的所有数据。我在我的fragment中以相同的方式两次获得我的View模型:@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);interventionViewModel=ViewModelProviders.of(this).get(InterventionsViewMod
最近,我被下面的代码困住了。publicclassNoteViewModelextendsViewModel{privatefinalMutableLiveData>notesLiveData=newMutableLiveData();publicNoteViewModel(){LiveData>notesLiveDataFromRepository=NoteRepository.INSTANCE.getNotes();//HowcanI"assign"LiveDatafromRoom,toMutableLiveData?}}我想知道,如何将Room中的LiveData“分配”到Mut
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我正在开发Android应用程序并尝试遵循MVVM设计模式。我有一个listView,问题是Adapter是否应该是ViewModel类的一部分?使用MVVM设计模式构建此结构的最佳方式是什么?
我正在关注this了解LiveData和ViewModel的文档。在文档中,ViewModel类具有这样的构造函数,publicclassUserModelextendsViewModel{privateMutableLiveDatauser;@InjectUserModel(MutableLiveDatauser){this.user=user;}publicvoidinit(){if(this.user!=null){return;}this.user=newMutableLiveData();}publicMutableLiveDatagetUser(){returnuser;}
我在MainFragment中创建View模型:@OverridepublicvoidonActivityCreated(@NullableBundlesavedInstanceState){super.onActivityCreated(savedInstanceState);...MainViewModelmainViewModel=ViewModelProviders.of(this).get(MainViewModel.class);...}当用户选择项目然后导航到详细信息fragment时,此事务将添加到后台堆栈。getFragmentManager().beginTrans