首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android如何在后台服务中创建模型/存储实例以访问模型方法?

Android如何在后台服务中创建模型/存储实例以访问模型方法?
EN

Stack Overflow用户
提问于 2017-05-19 07:02:11
回答 1查看 1.1K关注 0票数 3

我在我的Android应用程序中使用MVP模式。我的要求是

1.当用户单击“同步”按钮时同步捕获的数据

2.作业调度程序,它将在午夜调用后台服务并与服务器同步,即使应用程序没有运行.

这两种情况的流程如下:

1)当用户单击“Sync”按钮时同步捕获的数据

  • 将调用getPresenter().notifySyncBtnPressed()
  • notifySyncBtnPressed()将通过调用mModel.sync()来指示模型
  • 同步自模型有从DB获取数据的完整实现,将其上传到服务器,并将结果通知演示者
  • 然后,演示者通过调用getView().notifySyncFinished()通知视图

注意:我很清楚这个流程--如果需要的话,建议改进

2)将调用后台服务的作业调度程序(请在此提供说明)

  • BroadcastReceiver将调用扩展IntentService的服务类
  • 创建模型对象(IModel model = new ()),并从onHandleIntent()调用model.sync()。
  • 因为没有UI,所以不需要调用演示者。也不需要通知情况。
  • 一旦完成同步操作,服务将被终止。

请建议,

1.从服务类调用模型(存储库)实例是正确的吗?

2.我也混淆了模型层和存储层,MVP.中的模型层和存储层有什么不同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-24 10:57:00

现在我明白了您为什么要从服务中选择推荐人,如果是这样的话,我认为您应该专门为服务创建一个演示者。这是相当强硬的,但这是有意义的。

无论如何,这些步骤似乎很好,演示者应该与“模型”(MVP中的M)进行交互,并且通常由交互角色组成。如果您想使用存储库模式,这将发生在交互器后面,并且将成为模型层的一部分。

我会将您的IModel重命名为IInteractor,每个需要数据的组件都将与该类进行接口。然后由交互器访问存储库,表示层不可见。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44063494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档