应用程序有当应用程序启动一个后台服务运行在后台服务发送。在这项服务中,onStartCommand()
开始使用读取之间传递的参数的参数来侦听GPS位置。比方说50米。每一个位置阅读下面的操作时有发生:
- 读取位置存储在本地数据库
- 从数据库
- 位置(一个或多个)发送到Web服务器检索所有未发送的位置
- 如果发送成功,位置(一个或多个)从数据库
现在这种行为发生的每一次位置read.The用户可能行走这需要一些时间,使50米或删除驱动速度很快,而许多读取操作可能会完成,而且数据库插入/检索操作可能会变得麻烦。因此,其中一个主要要求就是在读取它们时顺序处理所有读取位置。就像:读取位置1,插入它,发送它...读取位置2,插入它,发送它。
我找不到一个合适的方法来做到这一点。如您所知,该服务与应用程序在相同的主线程中运行,因此我肯定需要使用线程来保持UI运行平稳。
我想使用的ExecutorService和Executors.newSingleThreadExecutor()到每一个位置的读取时间提交新的线程。通过这种方式,我确保处理是按顺序完成的,但是......我为每次读取创建新线程,这可能不是什么好事。
对于这种情况,你会建议什么最好的方法?
是的,使用ExecutorService&Executors.newSingleThreadExecutor()....或者将所有东西包装在async服务器中 – petey