lifecycle-viewmodel-ktx
全部标签 我正在将我的应用程序转换为使用ViewModel。为了实例化ViewModel,我使用自定义Factory和Dagger2进行依赖注入(inject)。它看起来像这样:@SingletonclassViewModelFactory@Injectconstructor(privatevalviewModels:Map,@JvmSuppressWildcardsProvider>):ViewModelProvider.Factory{overridefuncreate(modelClass:Class):T=viewModels[modelClass]!!.get()asT}@Target
我有一个Activity应用程序。我想将viewModel绑定(bind)到父fragment生命周期(FlowFragmentLogin),并与子fragment(CellFragment、InfoFragment、等)。因此,当我从FlowFragmentLogin移动到FlowFragmentMain时,调用了viewModelonCleared()。但我发现的唯一方法是在Activity及其Fragment之间共享viewModel:https://insert-koin.io/docs/1.0/documentation/koin-android/index.html并且无法
请帮帮我。我一直被困在这个问题上这么久。我在构建我的应用程序时遇到此错误Error:Executionfailedfortask':app:transformClassesWithDexForDebug'.com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.dex.DexException:MultipledexfilesdefineLan
我在我的存储库中使用AsyncTask,它用于设置存储库中的LiveData。我如何使用转换从我的ViewModel观察这个LiveData? 最佳答案 你可以忽略我的另一个答案。解决方案是在您的View模型中使用MediatorLiveData。您将存储库中的LiveData作为数据源添加到MediatorLiveData并在观察者onChanged回调中调用setValue或postValue(取决于它是否在UI界面中)。像这样currentTransaction.addSource(application.getFinance
我想知道是否需要SpiceManager的shouldStop()方法。我的想法是它应该从Activity/fragment中解除绑定(bind)可能的监听器,但是如果Activity无论如何都会被杀死,是吗事情?垃圾收集器仍将清理Activity/fragment,后台服务仍将单独完成。或者我在这里错了吗?当您忘记后台线程中的某些引用时,Android真的会泄漏吗?sourcecode中有一些(误导性的)评论:对于shouldStop()它说它将异步解除绑定(bind),对于shouldStopandJoin()同步地。但是shouldStop调用shouldStopAndJoin,
我一直在阅读有关MVVM模式的内容。View应该观察ViewModel中的变化并据此采取行动,但如果View中的以下代码在MVVM架构中是否正常,我感到困惑。funonClick(view:View){showUser(viewModel.getUserDisplayName())}这里View不是在观察变化,而是从ViewModel请求最新数据。这在MVVM中是否正确? 最佳答案 这是一个可能没有唯一答案的问题,因为可能会根据具体用例提出不同的观点。然而:我认为Codesalot爵士(出色的把柄)在技术上是正确的。让我详细说明。在
我在api低于21时收到此类未找到错误,即使谷歌表示它支持到api14我已经在androidstudio3.0beta6上试过了09-1917:12:39.2732794-2794/?E/AndroidRuntime:FATALEXCEPTION:mainProcess:xxxx,PID:2794java.lang.RuntimeException:Unabletogetproviderandroid.arch.lifecycle.LifecycleRuntimeTrojanProvider:java.lang.ClassNotFoundException:Didn'tfindclas
通过查看示例,我看到了2种使用Android架构组件的MVVM方法。第一种方法:ViewModel提供LiveDataActivity订阅LiveData当调用Activity的观察者正在将数据设置到ViewModelObservableField时。整个ViewModel被传递给绑定(bind)。在xml中,您只需将ObservableField设置为值viewmodel.refreshList()}"app:visibleGone="@{!viewmodel.listLoading}">优点:我不需要传递状态(例如“正在加载”),因为我在中更新listLoadingObservab
我正在尝试弄清楚MVVM(这对我来说很新)并且我想出了如何使用Room和ViewModel观察LiveData。现在我遇到了一个问题。我有一个需要参数的Room查询,这就是我在MainActivity的onCreate中开始观察LiveData的方式。Stringcolor="red";myViewModel.getAllCars(color).observe(this,newObserver>(){@OverridepublicvoidonChanged(@NullableListcars){adapter.setCars(cars);}});通过使用此代码,我收到了“红色”汽车的列
关于过去的问题HowtogetaViewModel?,以及我发现的例子,它并不能解决我的问题。我没有在那里发表评论的权限,所以我不得不再次询问。我没有ViewModelProviders类,我想在我找到的所有示例和文档中使用“of”方法,例如model=ViewModelProviders.of(this).get(Something.class);在AndroidStudio中,我找不到要添加为依赖项的“android.arch.lifecycle:extensions”。当我搜索时它说“没有什么可显示的”。我在API27。所以,尝试使用未弃用的元素,我在fragment中有这个:p