lifecycle-viewmodel-ktx
全部标签 尝试了解使用ViewModel保留Activity或fragment的某些状态并使用savedInstanceState包保存它们的区别。给人的印象是,在配置更改等情况下,当操作系统销毁Activity/fragment时,ViewModel实例会保持Activity状态,这样当操作系统重新创建Activity/fragment时,Activity/fragment可以从仍然有效的ViewModel实例中获取数据。它是否适用于最小化应用程序并重新打开它?做了一些测试,似乎最小化应用程序并重新打开应用程序,操作系统将重新创建Activity/fragment,其中onCreate()中的
我有一个正在使用生命周期库的应用程序,但我收到一个IllegalArgumentException,提示“无法添加具有不同生命周期的相同观察者”我只在我认为安全的onCreate中添加观察者。我的大多数观察者都是通过匿名类添加的,我认为这不是这里的问题,因为观察者永远不会被回收。一种是使用this:privateGpsStategpsState;voidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);getLifecycle().addObserver(gpsState);gpsState.ob
我目前正在研究MVVM架构模式,但我对扩展BaseObservable的自定义ViewModel类和Android本身提供的另一个ViewModel感到困惑。 最佳答案 您的自定义ViewModel只是您View的数据持有者,因为它绑定(bind)到您的View(并且因为它是一个Observable对象),所以它可以通知View有关数据的更改。但是,它不知道方向更改(View旋转)等配置更改,因此,在这种情况下,程序员应该保存和恢复数据examplehere.另一方面,Android提供的ViewModel知道这些配置更改,因此它的
阅读本文后,我对ViewModels留下了一些疑问:https://developer.android.com/topic/libraries/architecture/saving-states这里说您应该结合使用ViewModel进行配置更改(如屏幕旋转),并在所有其他情况下使用onSaveInstanceState()Activity被销毁,然后重新创建以保存UI状态。我的问题是我们如何知道调用onCreate(Bundle)时恢复状态的方法——我应该使用ViewModel还是应该使用接收到的包作为参数?当配置改变时,onSaveInstanceState()也会被调用,显然on
我正在研究谷歌的架构组件来为我的应用程序实现ViewModel和LiveData,官方文档说:Note:SincetheViewModeloutlivesspecificactivityandfragmentinstantiations,itshouldneverreferenceaView,oranyclassthatmayholdareferencetotheactivitycontext.IftheViewModelneedstheApplicationcontext(forexample,tofindasystemservice),itcanextendtheAndroidVi
有两个Fragment:ParentFragment和ChildFragment。ChildFragment已添加到ParentFragment的View中。现在使用Dagger2forAndroid有ParentFragmentModule和一个方法:@ProvidesfunprovideViewModel(fragment:ParentFragment,myViewModelFactory:MyViewModelFactory):MyViewModel{returnViewModelProviders.of(fragment,myViewModelFactory).get(MyVi
我在我的Android应用程序中重载了应用程序类,我正在使用ACRA报告系统。我的应用看起来像(realsourcecodehere):publicclassMyApplicationextendsApplication{@OverridepublicvoidonCreate(){ACRA.init(this);/**Initializemysingletonsetc*...*...*/super.onCreate();}}据我所知,Application对象应该只创建一次,因此onCreate方法应该只调用一次。问题是,在我的崩溃报告(来自ACRA)中,我有这个:java.lang.
我试图弄清楚如何以最佳方式从ViewModel完成Activity。我找到了一种使用LiveData对象并发出“信号”的方法。我怀疑这个解决方案有开销。那么这是正确的解决方案还是我应该使用更准确的方法?举个例子:假设在一个应用程序中有一个ActivityMainActivity和View模型,如下所示:classMainActivity:AppCompatActivity(){overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)valmodel=ViewModelProvid
我正在使用C#和XAML为Windows8制作我的第一个游戏。我仍在学习核心概念和最佳实践,而MVVM一直是一个障碍。我将尝试分两部分提出这个问题。背景我正在制作的游戏是数独。数独有一个包含9x9格子的棋盘。我有三个型号-Game,Board,和Tile.当Game创建后,它会自动创建一个Board,当Board被创建,它创建81(9x9)Tiles.1.有了层级的View,对应的View模型是如何创建的?为了匹配模型的层次结构,我想要一个View层次结构(GameView包含一个BoardView,其中包含81TileViews)。在XAML中,使用用户控件创建这种View层次结构非
在对Maven项目进行Build/初始化时 可能会出现下图这种情况:[ERROR]Nogoalshavebeenspecifiedforthisbuild.Youmustspecifyavalidlifecyclephaseoragoalintheformat:or:[:]:.Availablelifecyclephasesare:pre-clean,clean,post-clean,validate,initialize,generate-sources,process-sources,generate-resources,process-resources,compile,process