草庐IT

lifecycle-viewmodel-ktx

全部标签

android - 了解 Android 架构组件示例 GithubBrowserSample : ViewModelModule, ViewModel 参数

涵盖Android架构组件的最新示例之一是GithubBrowserSample由谷歌提供。我查看了代码并提出了一些问题:我注意到ViewModelModule包含在AppModule中.这意味着所有View模型都添加到DI图中。为什么以这种方式完成,而不是为每个Activity/Fragment单独的Module只为特定的Activity/Fragment提供所需的ViewModel?在这个特定示例中,View模型使用GithubViewModelFactory进行实例化有没有办法将参数传递给特定的ViewModel?或者更好的解决方案是在ViewModel中创建一个setter并通

android - 具有多个 ViewModel 的 Activity

我有一个Activity,其中包含3个RecyclerViews。我需要使用来自远程存储库的数据(3个不同的请求)填充RecyclerViews。我可以在Activity中使用多个ViewModels,还是有更好的解决方案(最佳实践)。 最佳答案 根据theopen/closedprinciple,您应该创建三个不同的ViewModel。复杂性并没有增加那么多,并且您获得了将一个ViewModel(或只是重用它)与相应的RecyclerView移动到另一个Activity的能力很容易。当然,有时打破规则是有意义的——例如,如果你知道

android - 何时调用 viewmodel onCleared

ViewModel是否独立于Activity/fragment生命周期或仅独立于它们的配置更改。它们何时将不复存在并调用后续的onCleared()方法。viewModel可以与其他Activity共享吗?一种情况:Activity1+viewModel1--->(rotation)--->Activity1+viewModel1--->(launchIntent)--->Activity2+viewModel1这种分享可行吗?这是一种好习惯吗?此外,由于应用程序生命周期回调,onPause->onStop->onDestroy对于两者都是相同的1.activity旋转和2.当一个Ac

android - MarkerClick 有效,但 InfoWindowClick 不打开 ViewModel

以下MarkerClick实现工作,非常好。我可以通过ShowViewModel打开其他ViewView.csmMap.MarkerClick+=MMap_MarkerClick;privatevoidMMap_MarkerClick(objectsender,GoogleMap.MarkerClickEventArgse){ViewModel.MapInfoSelected(e.Marker.Title);}ViewModel.cspublicvoidMapInfoSelected(stringname){ShowViewModel(new{studentName=name});}I

android - 手动清除 Android ViewModel?

编辑:这个问题有点过时了,因为Google已经让我们能够将ViewModel范围限定为导航图。更好的方法(而不是试图清除Activity范围的模型)是为适当数量的屏幕创建特定的导航图,并确定它们的范围。引用android.arch.lifecycle.ViewModel类。ViewModel的范围是与其相关的UI组件的生命周期,因此在基于Fragment的应用程序中,这将是fragment生命周期。这是一件好事。在某些情况下,希望在多个fragment之间共享一个ViewModel实例。具体来说,我对许多屏幕与相同的基础数据相关的情况感兴趣。(当多个相关fragment显示在同一个屏幕

android - BoundService + LiveData + ViewModel 新安卓推荐架构最佳实践

我一直在苦苦思索在新版AndroidrecommendedArchitecture中放置Android服务的位置。.我想出了很多可能的解决方案,但我无法决定哪一种是最好的方法。我做了很多研究,但找不到任何有用的指南或教程。我发现的关于在我的应用程序架构中放置服务的位置的唯一提示是来自@JoseAlcerrecaMediumpost的提示。Ideally,ViewModelsshouldn’tknowanythingaboutAndroid.Thisimprovestestability,leaksafetyandmodularity.Ageneralruleofthumbistomak

android - 如何在 Android MVVM ViewModel 中获取上下文

我正在尝试在我的android应用程序中实现MVVM模式。我已经读过ViewModels不应该包含特定于android的代码(以使测试更容易),但是我需要为各种事情使用上下文(从xml获取资源、初始化首选项等)。做这个的最好方式是什么?我看到AndroidViewModel有一个对应用程序上下文的引用,但是它包含android特定的代码,所以我不确定它是否应该在ViewModel中。这些也与Activity生命周期事件相关,但我使用dagger来管理组件的范围,所以我不确定这会如何影响它。我是MVVM模式和Dagger的新手,因此不胜感激! 最佳答案

android - 无法创建类 ViewModel 的实例

我正在尝试使用Android架构组件编写一个示例应用程序,但即使尝试了几天,我也无法让它工作。它给了我上述异常。生命周期所有者:-publicclassMainActivityextendsLifecycleActivity{publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextViewtextView=findViewById(R.id.tv_user);PostViewModelviewMod

android - 找不到 runtime.jar (android.arch.lifecycle :runtime:1. 0.0)

在我运行ioniccordovabuildandroid后,我收到此错误:FAILURE:Buildfailedwithanexception.*Whatwentwrong:Couldnotresolveallfilesforconfiguration':debugCompileClasspath'.>Couldnotfindruntime.jar(android.arch.lifecycle:runtime:1.0.0).Searchedinthefollowinglocations:https://jcenter.bintray.com/android/arch/lifecycle

android - 使用新的架构组件 ViewModel 在 fragment 之间共享数据

在LastGoogleIO上,Google发布了一些新架构组件的预览,其中之一是ViewModel。在docsgoogle展示了该组件的一种可能用途:Itisverycommonthattwoormorefragmentsinanactivityneedtocommunicatewitheachother.Thisisnevertrivialasbothfragmentsneedtodefinesomeinterfacedescription,andtheowneractivitymustbindthetwotogether.Moreover,bothfragmentsmusthand