我需要编写一个 android 应用程序,它从网络和数据库中获取日期并加载到一个 Activity 上。我打算使用 mvp 设计模式。 湖。该 Activity 将在屏幕上加载控件。 2. 在点击按钮时,Activity 将调用 Presenter 方法来获取 mo 来自网络的数据。
Q1:我的疑惑是谁来调用DB类的Select方法或者HTTGet方法。演示器上的模型?
Q2:asynctask 将执行 HTTP get。这存在于帮助类中。 但是谁调用了asynctask.execute。主持人还是模特?
http 响应是一个 xml。这在 asynctask 的 do In background() 方法中可用。
Asynctask 将调用另一个助手来解析 XML 并获取所有字符串。 Q3 helper会调用model的set方法吗? Q4 现在谁来告诉 Activity 的 set 方法来更新 View ?
最佳答案
Q1 - 好的做法是在存储库(模型层)中封装 Select 方法和 HTTP 请求
Q2 - AsynkTask 是旧方法,它有一些缺点,可能应该使用 RxJava?
Q3 - 将原始响应转换为需要在 Repository 中执行的数据对象。然后,此数据对象传递给此网络查询的监听器,在您的情况下,监听器是演示者。
Q4 - 当 Presenter 获取数据对象时,它通知 View 数据已更改。
附言可以看到这个库https://github.com/MaksTuev/ferro , 它提供了管理后台任务的新方法。
关于android - 谁在 mvp android 中调用 db 查询和 http get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26622888/