lifecycle-viewmodel-ktx
全部标签 我相信模板方法模式涉及封装算法中的每个步骤。我认为Activity的生命周期(onCreate、onResume等)是必须被具体类覆盖的步骤。这是否意味着AndroidActivity生命周期(Activity和fragment类)符合模板设计模式,或者是否有更适合它的不同模式谢谢 最佳答案 Androidframework的构建方式肯定是遵循模板模式,这是它的长处也是它的短处。因为这种模式建议只实现模块的某些部分,所以很容易获得快速简单的结果,而无需付出太多努力。但是,由于它是基于继承的,一旦您开始考虑扩展框架或处理交叉关注点模式
我在MainFragment中创建View模型:@OverridepublicvoidonActivityCreated(@NullableBundlesavedInstanceState){super.onActivityCreated(savedInstanceState);...MainViewModelmainViewModel=ViewModelProviders.of(this).get(MainViewModel.class);...}当用户选择项目然后导航到详细信息fragment时,此事务将添加到后台堆栈。getFragmentManager().beginTrans
我正在尝试想出一种方法让EditText更新ViewModel的数据并同时观察该数据的任何更改(例如,通过操作数据库带来的更改)。有没有办法在不使用数据绑定(bind)库的情况下做到这一点?我在简单地使用MutableLiveData时面临的主要问题如下:当用户在EditText中输入文本时,TextWatcher会触发ViewModel以更新其数据,这反过来会将新文本设置到MutableLiveData对象。因为EditText正在观察LiveData,所以会触发onChange并相应地设置EditText的文本,这又会再次触发TextWatcher,从而形成无限循环。
我处于以下场景:我有一个包含ViewModel的OnboardActivity,我可以多次旋转这个OnboardActivity和ViewModel跨配置更改持续存在而不会出现问题。但是,如果我使用startActivityForResult(...)在这个(OnboardActivity)之上启动另一个Activity(FirebaseAuthActivity),然后在FirebaseAuthActivity中旋转设备并按下后退按钮。当OnboardActivity被带到堆栈的顶部时,它会再次重新创建ViewModel实例。这是ViewModel在架构组件中的正常行为吗?当Onboa
我正在使用MvvmCross开发Xamarin.Android应用程序。每次我在RELEASE配置下启动应用程序时,它都会在启动时崩溃并出现以下错误:Cirrious.CrossCore.Exceptions.MvxException:FailedtoconstructandinitializeViewModelfortypeDroidApp.Core.ViewModels.MainViewModelfromlocatorMvxDefaultViewModelLocator-checkMvxTraceformoreinformation此应用程序在DEBUG配置下运行良好。在我更新代码
我发现了一个架构组件ViewModel没有被保留的情况——简而言之,它是这样的:Activity启动并创建ViewModel实例Activity置于后台设备屏幕旋转Activity回到前台调用ViewModel的onCleared方法并创建新对象在这种情况下,我的ViewModel实例被破坏是Android的正常行为吗?如果是这样,是否有任何推荐的保持其状态的解决方案?我能想到的一种方法是在调用onCleared后保存它,但是,它也会在Activity实际完成时保持状态。另一种方法是使用onRestoreInstanceState但它会在每次屏幕旋转时触发(不仅是在应用程序处于后台时)
我正在努力选择将数据从broadcastReceiver传递到ViewModel的正确方法,然后从那里将数据传递到我的存储库并更新LiveData。我使用FCM推送通知并拥有使用ActivityLifecycle的本地broadCastReceiver。我发现从BroadcastReceiver访问ViewModel是不好的做法,但不确定为什么?如果我管理broadcastReceiver的生命周期,它应该不会引起任何问题...那么将接收到的数据从FCM传递到我的存储库的MediatorLiveData的最佳方法是什么?我使用MediatorLiveData,因为我添加了不同的实时数据
每当向用户显示fragment时,我都需要执行一些代码。通过API查看我能看到的最接近的钩子(Hook)方法是onResume。但是,从我的代码调试来看,当用户选择后退按钮返回到先前显示的fragment时,似乎不会调用onResume。只是为了澄清我所看到的行为:我有一个“父”Activity,它在ActionBar中配置选项卡...和2个fragmentF1和F2。用户选择一个选项卡,F1被加载到Activity中。按下按钮后,用户可以导航至F2。这不是一个单独的选项卡...F2已交换到布局中。添加日志语句,我可以看到当用户选择F2上的后退按钮时,会发生以下情况......1)
我在我的项目中使用MVVM、Retrofit、LiveData,但在我看到这些链接之前出现此错误CannotcreateaninstanceofcustomViewModelCannotcreateaninstanceofclassViewModel错误java.lang.RuntimeException:UnabletostartactivityComponentInfo{ir.orangehat.movieinfo/ir.orangehat.movieinfo.application.home.HomeActivity}:java.lang.RuntimeException:Can
我想知道当用户从HomeScreen返回到Activity时正确的顺序是什么。会不会先执行Activity的onResume(),然后再执行Fragment的onResume()?它是按顺序执行,还是同时执行?我在Fragment的onResume()中添加了一些代码,但在Activity的onResume()之后似乎没有触发。 最佳答案 IamwonderingwhattheproperordergoeswhenauserreturnstoanActivityfromtheHomeScreen.Activity的onResume(