Mvvmcross:与Android服务交互

4

我正在考虑在一个项目中使用mvvmcross。目前,我只是在探索mvvmcross并阅读不同的文章,但我找不到任何与mvvmcross和android service有关的内容。如何在视图模型中启动、停止或绑定服务?在处理服务时,“最佳”方法是什么?是否有人有相关链接或资料。

Uros

1个回答

4
一般来说,我将Android服务、iOS长时间运行任务和Windows后台任务视为独立的“服务”,它们通常不直接与ViewModel交互,而是通过消息传递、数据存储等方式进行交互。特别是对于Android,您可能需要使用View/Activity级别的钩子,如服务本地绑定(请参见Android - Service and Activity interaction)。
当后台服务与ViewModel共享同一进程(相同的内存空间)时,可能会出现一些尴尬的问题,比如初始化共享的IoC和任何所需的应用程序单例。然而,通常这并不难做到-例如,请参阅如下问题:Using MvvmCross from content providers and activities MvvmCross initialization 我个人还没有看到足够的这种类型应用的示例,以便确定是否可以在MVVM平台层面提供一些常见的架构模式。我很想看到更多的示例以及更多人谈论这个领域内的架构思想。

嗨,Stuart。感谢你的回答。当我在考虑解决问题的可能方法时,消息传递是我首先想到的方式,因为这是我在使用WPF并需要视图模型视图交互时采用的方式。所以我会查看提供的链接,看看它会带我去哪里。顺便说一句 - 你在整个mvvmcross项目中做得非常出色,我真的很喜欢你的N+1教程系列。 - Uroš
@Stuart 我同意像 Android 这样的专门长时间运行的服务应该保持独立,但是当我们希望它们启动时,如何使依赖注入能够进入这些服务,就像我们注入视图模型一样。 - Tri Q Tran
答案已经包含了像https://dev59.com/L3TYa4cB1Zd3GeqPqRTl这样的问题链接 - 这能帮到你吗? - Stuart

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