1
我正在使用Android音樂播放器。我正在使用服務播放歌曲,SQLite數據庫來存儲歌曲,和ContentProvider來訪問sqlite數據庫。我很困惑,我如何維持服務和活動之間的聯繫?我應該在演示者和服務之間建立連接嗎?因爲我打算將我的服務視爲模型,那麼最好和最簡單的方法是什麼?如何在Android MVP體系結構中分離服務和活動?
我正在使用Android音樂播放器。我正在使用服務播放歌曲,SQLite數據庫來存儲歌曲,和ContentProvider來訪問sqlite數據庫。我很困惑,我如何維持服務和活動之間的聯繫?我應該在演示者和服務之間建立連接嗎?因爲我打算將我的服務視爲模型,那麼最好和最簡單的方法是什麼?如何在Android MVP體系結構中分離服務和活動?
看看描述的方法here - 它應該可以幫助您將您的服務從MVP架構中的活動中解耦出來。
謝謝@Chornge我已經讀過,我得知我可以將服務實例傳遞給演示者,以便演示者可以處理活動和服務之間的所有交互。但我懷疑,我們是否真的通過這種方式來解耦活動和服務?這是唯一正確的方法嗎? –
是的,你解耦它們 - 它們不依賴於對方來運行,活動代碼不在服務類中,服務代碼不在活動類內部,即所有的邏輯放在提交者內部,你可以使用合約創建一個活動(視圖)和一個域對象(服務)之間的連接,他們不需要了解彼此。你可以使用匕首作爲依賴注入 - 這樣你可以使用mockito或robolectric單元測試你的應用程序。 – chornge
這是一種方式,但它不是唯一正確的方式 - 與android中的大多數事情一樣,它們有很多方法可以完成一件事。與mvp架構一樣,你可能注意到 - 當閱讀指南/博客/文章時,有不同的「風味」來實現相同的目標。這只是一種方式。你可以嘗試並找到適合你的方法。 – chornge