我开始学习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的好方法。
可能有人可以帮助我以最佳方式启动我的应用程序吗?
答案 0 :(得分:8)
MVC已经实施。
答案 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。