我几年来一直在开发Android应用程序。最近我在我的应用程序中使用了MVP架构,经过大量阅读并使用了这个Android10 github repo。
但我对这个MVP架构的问题很少,我正在寻找。请帮助我更好地理解这些。
1)所以我有三个模块app,domain,data。哪些模块主持人会去。在某些应用程序中,他们在域中拥有它但我看到其他一些库在演示文稿或应用程序模块中有这样的https://github.com/android10/Android-CleanArchitecture。
2)演示者是否可以使用与Intents,Contexts,SharedPrefs相关的Android相关内容?我不认为这应该发生。
3)数据模块可以与app模块通信,反之亦然或者app模块应该与域模块通信,在术语中执行数据模块上的东西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()
?
答案 0 :(得分:2)
在Android中实施MVP有很多种方法。
我见过的大部分方法都将Activity / Fragment指定为MVP视图。这最初看起来很自然,但是当您尝试将此方案应用于非平凡的应用程序时,会出现太多问题和问题。
在我研究了许多MVP方法(包括你链接的方法)之后,我得出结论,没有活动没有片段应该是MVC视图。
此声明背后的详细原因概述如下:Why Activities are not UI Elements。
遵循这个视线,我提出了另一个用于Android应用程序的MVP实现:MVP and MVC Architectures in Android。
关于你的问题:
另外,关于FB集成,请参阅我的回答here。