2013-07-14 48 views
4

我正在考慮在其中一個項目中使用mvvmcross。現在我只是在探索mvvmcross並閱讀不同的文章,但我找不到與mvvmcross和android服務有關的任何內容。如何在視圖模型中啓動,停止或綁定到服務。處理服務時,「最佳」方法是什麼?有沒有人有鏈接或任何關於這個問題。Mvvmcross:與Android服務互動

烏羅什

回答

4

總的來說我對Android服務,IOS長時間運行的任務和Windows後臺任務作爲獨立的「服務」,他們一般不與的ViewModels直接交互,而是通過信息互動,通過數據存儲等等。特別是對於Android,您可能需要使用視圖/活動級別的掛鉤,如服務本地綁定(請參閱Android - Service and Activity interaction

當後臺服務與ViewModels共享相同的進程(相同的內存空間)時,看起來有點尷尬的是初始化共享IoC和任何所需的應用程序單例。然而,通常這似乎不太難做 - 例如,看到像Using MvvmCross from content providers and activitiesMvvmCross initialization

我沒有親自見過這種類型的應用程序的足夠的例子來制定,如果有可能在MVVM平臺級提供一些常見的架構模式的問題。我很想看到更多的例子和更多的人在這個領域討論建築理念。

+0

嗨斯圖爾特。謝謝您的回答。當我在考慮可能的解決方案時,消息傳遞是我想到的第一件事,因爲這是我使用WPF時需要遵循的方式,並且需要視圖模型視圖交互。所以我會檢查提供的鏈接,看看它帶領我。順便說一句 - 你在整個mvvmcross項目中做得非常出色,我非常喜歡你的N + 1教程系列。 –

+0

@Stuart我同意專門的長期運行的服務(如Android)應該保持獨立,但是,我們如何在啓動時啓用依賴注入到這些服務中,就像我們注入視圖模型一樣。 –

+0

答案已經包含了像http://stackoverflow.com/questions/17466140/mvvmcross-initialization這樣的問題的鏈接 - 這應該有所幫助嗎? – Stuart