簡體   English   中英

如何將WearableActivity與LiveData和ViewModel結合使用

[英]How can I use WearableActivity with LiveData and ViewModel

我希望能夠在Wearable應用程序中使用新的Android體系結構組件中的Lifecycle組件(與在Android應用程序中相同)。

在我的主要Android應用程序中,我將LiveData字段放在ViewModel中 然后可以從我的活動和片段中訪問/綁定此ViewModel 為此,我使用ViewModelProviders.of方法,該方法需要android.support.v4.app.Fragmentandroid.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM