Android中的MVC是/否?组织与Web服务通信的应用程序的最佳方式是什么

时间:2011-06-23 18:33:02

标签: android

我开始学习Android,我想知道组织我的应用程序的最佳实践。 我习惯用三部分来分解我的项目;模型,视图和控制器......所以在第一种情况下,我想创建我的包源:

 - project.models.* // My all models
 - project.ui.*     // My all activities

我的应用需要与网络服务进行通信,所以:

 - project.models.* // My all models
 - project.ui.*     // My all activities extends ListActivity etc...
 - project.io.*     // Interfaces between models and webservices.

但是我已经阅读了很多例子,它似乎不是正确的方法......我不知道这是否是尝试用Android创建MVC的好方法。

可能有人可以帮助我以最佳方式启动我的应用程序吗?

4 个答案:

答案 0 :(得分:8)

MVC已经实施。

See here

答案 1 :(得分:1)

使用mvc的问题是它很难测试。我建议你改用MVP。

对于Web服务,您可以尝试学习syncAdapter。这是一篇关于如何使用它们的好文章: http://naked-code.blogspot.com/2011/05/revenge-of-syncadapter-synchronizing.html

答案 2 :(得分:1)

就“组织与webservices通信的应用程序的最佳方式”而言,GoggleIO 2010的会话非常有用:

http://www.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html

这是Android应用程序如何分解存储数据和与服务器通信的责任的高级描述。通过会话的指针,我能够挖掘出一些关于IntentServices的精彩信息,使用ResultReceivers将通知发送回UI线程,并使用ContentProvider数据更新来驱动刷新。

一旦你将这些部件缝合在一起提供底座,就可以更轻松地在它上面组装一个干净的MVC。

答案 3 :(得分:0)

请记住将UI与Web服务调用分离。在理想情况下,所有的Web服务通信都是 在单独的类/线程中。 UI应与其分离。

UI可以为您的服务处理类(控制器)提供新数据,或者控制器可以通过意图主动推送它们。您也可以考虑实施服务

在我的休闲游戏中,我使用定期闹钟来同步本地高分数缓存与服务器(每30分钟一次),并在最高分更改时通过意图通知UI。