我希望能够在我的可穿戴应用程序中使用新Android架构组件中的生命周期组件(与我在Android应用程序中一样)。
在我的主Android应用中,我将LiveData字段放在ViewModel中。然后可以从我的Activity和我的片段中访问/绑定此ViewModel。要执行此操作,我使用ViewModelProviders.of方法android.support.v4.app.Fragment或android.support.v4.app.FragmentActivity。到目前为止一切都很好......
我遇到的问题是,我的Wear应用程序基于WearableActivity类,该类从android.app.Activity而不是android.support.v4.app.FragmentActivity延伸。这使我无法在可穿戴应用中使用ViewModelProviders.of。
我已经四处询问并尝试寻找替代解决方案,但我不知道ViewModelProviders的内部因此我现在无法解决这个问题。如果没有答案,我希望有人能够对这些组件进行研究。能够使用ViewModel& amp; LiveData贯穿我的应用程序(移动和穿戴)。
答案 0 :(得分:3)
更新: AmbientMode似乎是解决这个问题的新方法。
正如@codingjeremy在他的帖子中所提到的,他们现在已经在Android支持库27.0.0中引入了它。
原件:
我通过将WearableActivity中的实现逐字复制到我自己的项目中定义的新WearableFragmentActivity类,然后将其更改为扩展FragmentActivity来解决这个问题。直接获得Google的支持将是理想的解决方案,但如果您在此期间寻找解决方法,这应该会有效。
答案 1 :(得分:0)
这是不可能的,因为ViewModel
取决于支持片段(即FragmentActivity
)。
WearableFragmentActivity
等效内容的功能请求
答案 2 :(得分:0)
我使用AmbientMode.AmbientCallbackProvider
代替WearableActivity来使用它。
这是新的首选方法,它仍然为您提供onEnterAmbient()
,onAmbientUpdate()
和onExitAmbient()
,但也允许您使用Activity
(或任何子类.. .FragementActivity等)...允许你支持架构组件。
答案 3 :(得分:0)
您可以使用此移植架构组件:LifeCycleData