[英]Questions on MVP Pattern for Android apps
我已經開發了android應用幾年了。 最近,我在應用中使用了MVP架構,並通讀了很多內容並利用了Android10 github存儲庫。
但是我對這種MVP架構幾乎沒有疑問。 請幫助我更好地理解這些。
1)所以我有三個模塊的應用程序,域,數據。 哪個模塊演示者將參加。 在某些應用程序中,它們在域中具有它,但是我看到其他一些庫在演示文稿或應用程序模塊中具有此https://github.com/android10/Android-CleanArchitecture 。
2)演示者可以擁有與Android有關的東西,例如Intent,Contexts,SharedPrefs ets嗎? 我認為這不會發生。
3)數據模塊可以與應用程序模塊通信,反之亦然?或者應用程序模塊應該與域模塊通信,該域模塊將在數據模塊上執行事務
4)我該如何使用MVP架構進行類似於Facebook的社交登錄?有什么想法或鏈接可以解釋嗎? 我以下面的方式做到了:
活動: onFBButtonClick()
-> presenter.onButtonClick()
-> FacebookLoginManager.registerCallback
之后,我直接在onActivityResult(int requestcode, int resultcode, Intent intent)
上獲得我的活動的回調。 現在根據fb sdk教程,我必須調用FbCallbackManager.onActivityResult(with all the params)
。 但是我無法在演示者中傳遞這些信息,因為演示者不應該了解意圖(特定於平台)的內容。 我現在如何調用FbcallbackManager.onActivity()
?
在Android中有多種實現MVP的方法。
我見過的大多數方法都將“活動/片段”指定為MVP視圖。 最初看起來很自然,但是當您嘗試將此方案應用到非平凡的應用程序時,會出現很多問題。
在研究了許多MVP方法(包括您鏈接的方法)之后,我得出一個結論,即“活動無片段”都不應該是MVC視圖。
此處總結了此主張背后的詳細原因: 為什么活動不是UI元素 。
根據這一觀點,我提出了針對Android應用程序的MVP的另一種實現:Android中的MVP和MVC體系結構 。
至於您的問題:
另外,關於FB集成,請在此處查看我的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.