Android架构的第一步 - 请帮助我避免重大错误

时间:2011-12-09 10:31:28

标签: java android architecture

我是一位经验丰富的.NET / iOS开发人员,他在Android开发中迈出了第一步 - 帮助我避免走错路,我会感激一些指导:

基本上,我有一个应用程序,可以在地图/列表中显示位置。当用户在地图上滚动时,将从JSON Web服务获取位置。可以点击位置,此时调用另一个JSON Web服务以检索该位置的实时信息。然后显示实时信息。

所以,在阅读各种“入门”Android文档后,我想我需要:

  1. 显示位置主地图视图的活动
  2. 显示列表视图的第二个活动?这些看起来很奇怪,因为我得到的印象是每个Activity必须是应用程序的整个屏幕。我想坚持其他UI元素。 (例如,切换视图的按钮,设置按钮等)这可能吗?
  3. 用于从Web检索位置的服务(或IntentService?)。它应该如何让Activity和ContentProvider知道何时检索到新的位置 - 通过广播还是应该绑定到它?
  4. ContentProvider,用于缓存和保留我的位置。当新数据可供显示时,内容提供者是否应广播活动?
  5. 我非常感谢你的帮助,因为我感到有些失落!

    卡洛斯

    PS:我将开发Mono for Android,除非有足够的人建议反对

3 个答案:

答案 0 :(得分:1)

  1. 第1点和第2点:您可以使用Fragments更新部分屏幕,Activity将充当多个片段的容器(使用兼容性库将片段反向移植到API级别10或更低

    < / LI>
  2. 您应该使用AsyncTask而不是服务从远程Web服务获取位置

  3. AsyncTask有一个回调onPostExecute(..),它将在完成远程提取时被调用,这可用于更新List,Maps或Fragments

答案 1 :(得分:1)

1。您可以使用MapActivity进行地图视图;

2。使用Activity和place listView在单个视图中包含按钮而不是ListActiviy

3.请按照位置更新程序教程

的链接进行操作

http://www.vogella.de/articles/AndroidLocationAPI/article.html

4。使用地图叠加技术进行信息显示

如果您在完成任务后想要任何建议,请发表评论

答案 2 :(得分:1)

  

显示位置主地图视图的活动

  

显示列表视图的第二个Activity?这些似乎很奇怪,因为我   得到每个活动必须是整个屏幕的印象   该应用程序。我想坚持其他UI元素。 (例如按钮到   切换视图,设置按钮等)这可能吗?

不一定如此。看看Fragments API。它允许您仅切换UI的部分内容。它是在Android 3.0中引入的,但它有一个官方的后端,所以你也可以在以前的Android版本中使用它。

有了它,您可以将按钮放入活动,将地图放在一个片段中,将列表放在另一个片段中,然后只需在保留按钮的同时用列表切换地图。

  

服务(或IntentService?)从Web检索位置。   它应该如何让Activity和ContentProvider在新的时候知道   已经检索了位置 - 通过广播或它们应该绑定到   它?

我强烈反对这一点。如果您在后台有长时间的下载,则应使用服务,例如下载文件或其他内容。短期JSON请求可以并且应该在UI过程中处理。使用AsyncTaskExecutor即可。谷歌已经建议将几乎所有的请求都放入服务中,但请相信我,这是公牛。

  

ContentProvider,用于缓存和保留我的位置。也许是   内容提供者应在新数据播放时播放活动   可以显示?

不需要。如果您打算让其他应用程序或系统可以访问您的内容,则您只需要ContentProvider。对于HTTP缓存,您可以直接访问数据库/文件系统,或者更好的是,使用Apache HTTP Client Cache。如果您使用已经嵌入的Apache HTTP Client,则可以正常工作。