我可以在活动和服务之间共享 ViewModel 吗?

6

我有一个运行服务的应用程序,即使应用程序关闭,该服务也应该继续工作。 我需要在它们之间共享信息,并希望尝试使用ViewModel来实现这一点。 我知道如何在片段之间共享ViewModel,但在活动和服务之间共享就不清楚了。 有人知道吗?


在服务中,_view_model的作用是什么? - Haukinger
我有一个跟踪传感器数据的类,需要被MainActivity和服务访问。我可以创建两个对象,但由于它们是相同的数据,这将是冗余的,并且我必须担心正确启动/停止每个对象。共享ViewModel是首选方案。 - Elliptica
1
当然,您只需存储数据一次。但我无法想象服务可能想要使用视图模型做什么。我宁愿将数据放在(经典的非Android)服务中,并从您的(Android)服务和视图模型中访问该服务。 - Haukinger
1个回答

0

@Elliptica

我的解决方案:

1)您的活动和服务必须在同一进程上运行!

2)创建一个BaseSupportViewModelService类,其中包含ViewModelStore以存储您的ShareViewModel

3)您的ViewModel必须是可共享的!如何在两个(或三个)活动或服务之间共享ViewModel

这里有一个link1

这里有一个link2

希望能对您有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接