![](/img/trans.png)
[英]Can I use Android studio 3.0, Lifecycles, ViewModel and LiveData for now?
[英]How can I use WearableActivity with LiveData and ViewModel
我希望能夠在Wearable應用程序中使用新的Android體系結構組件中的Lifecycle組件(與在Android應用程序中相同)。
在我的主要Android應用程序中,我將LiveData字段放在ViewModel中 。 然后可以從我的活動和片段中訪問/綁定此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和LiveData真是太棒了。
更新: AmbientMode似乎是處理此問題的新方法。
正如@codingjeremy在他的帖子中提到的那樣,他們現在在Android支持庫27.0.0中對此進行了介紹。
原版的:
通過將WearableActivity的實現逐字復制到我自己的項目中定義的新WearableFragmentActivity類中,然后對其進行更改以擴展FragmentActivity來解決此問題。 直接獲得Google支持將是理想的解決方案,但是如果您正在尋找解決方法,那應該可以使用。
我使用AmbientMode.AmbientCallbackProvider
而不是WearableActivity使其工作。
這是新的首選方法,它仍然為您提供onEnterAmbient()
, onAmbientUpdate()
和onExitAmbient()
但也允許您使用Activity
(或任何子類... FragementActivity等)...支持架構組件。
由於ViewModel
依賴於Support Fragments(即FragmentActivity
),因此尚不可能實現。
請通過issuetracker.google.com提出與WearableFragmentActivity
等效的功能請求
您可以使用此架構組件移植: LifeCycleData
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.