1

我正在使用Android音乐播放器。我正在使用服务播放歌曲,SQLite数据库来存储歌曲,和ContentProvider来访问sqlite数据库。我很困惑,我如何维持服务和活动之间的联系?我应该在演示者和服务之间建立连接吗?因为我打算将我的服务视为模型,那么最好和最简单的方法是什么?如何在Android MVP体系结构中分离服务和活动?

回答

1

看看描述的方法here - 它应该可以帮助您将您的服务从MVP架构中的活动中解耦出来。

+1

谢谢@Chornge我已经读过,我得知我可以将服务实例传递给演示者,以便演示者可以处理活动和服务之间的所有交互。但我怀疑,我们是否真的通过这种方式来解耦活动和服务?这是唯一正确的方法吗? –

+1

是的,你解耦它们 - 它们不依赖于对方来运行,活动代码不在服务类中,服务代码不在活动类内部,即所有的逻辑放在提交者内部,你可以使用合约创建一个活动(视图)和一个域对象(服务)之间的连接,他们不需要了解彼此。你可以使用匕首作为依赖注入 - 这样你可以使用mockito或robolectric单元测试你的应用程序。 – chornge

+0

这是一种方式,但它不是唯一正确的方式 - 与android中的大多数事情一样,它们有很多方法可以完成一件事。与mvp架构一样,你可能注意到 - 当阅读指南/博客/文章时,有不同的“风味”来实现相同的目标。这只是一种方式。你可以尝试并找到适合你的方法。 – chornge