0

我需要设计我的android应用程序的建议,这是我的第一个应用程序,所以我不太确定我的概念。

此处提供源代码: https ://code.google.com/p/android-express-project/source/browse/#svn%2Ftrunk%2Fandroid-express-project

我必须: 创建一个要求首先连接用户的应用程序,之后该应用程序必须让我的送货员(用户连接)在谷歌地图上显示他的所有送货作为航路点。该应用程序必须显示交付所有客户的最快方式。起点和终点通常是相同的。当交付者靠近交付点时,我需要检测到这一点并自动调用另一个活动,该活动显示要交付的数据包的扫描仪。

我已经做了什么: 我有一个 Activity ( NextDelivery ),它扩展到 RoboActivity (API 使用 @Inject 之类的注释将值绑定到 View 等。与通常的 Activity 类没有什么不同)。此活动有两个实习生私人课程:

  • 实现 LocationSource 和 LocationListener 的FollowMeLocationSource 。用于检测用户的位置并将标记添加到地图。
  • RoundXmlTask​​ 扩展至 AsyncTask。对于获取包含我所有的交付、发送者、接收者、数据包的 XML 文件很有用。这个文件非常重要,因为没有它我可以知道送货员必须去哪里。所以我需要获取文件,解析并将数据存储到我的数据库中。(这部分工作正常)但它很慢所以我想把它变成一个异步任务,不要阻塞我的 ThreadUI。解析完成后,我会从数据库中获取数据,而不是从 XML 中获取数据,但这也需要时间,但我不会在 ThreadUI 上执行此操作。

其实我的步骤是:

  1. 启动 NextDelivery.onCreate
  2. 获取 followMeLocationSource 实例,初始化地图并执行 asyncTask。

直接链接:https ://code.google.com/p/android-express-project/source/browse/trunk/android-express-project/src/com/app/express/activity/NextDelivery.java

但是,如果我这样做,我会启动两个 asyncTask(因为,在 followMeLocationSource.onLocationChanged() 上,我启动了我的 RoundTask,它调用 Google 网络服务方向来获取积分、他们的订单并在地图上绘制道路)

这是有效的,但我认为我可以做得更好。(而且效果不理想,显示了很多Toast,第一次没有绘制步骤)

所以,我会知道如何更好地做到这一点。感谢您的时间和帮助。

PS:你可以从SVN下载源代码,如果需要测试,你需要将google_play_service_lib添加到项目中,就可以了。

4

0 回答 0