【发布时间】:2016-03-30 09:41:34
【问题描述】:
我正在为一个使用ActivityRecognition API 和 GPS 的小型研究项目开发应用程序。我想要实现的是让两个 API 作为后台进程运行,并在日志文件中定期记录当前数据。收集数据后,可以手动分析此日志文件。
我的麻烦是了解最好的方法。我最初是从 ActivityRecognition sample app 开发的。我的流程如下:
- 当点击 MainActivity 中的按钮时,通过 requestLocationUpdated 创建位置监听器。同时在 MainAcitivity 中创建 ActivityRecogition 监听器。
- 触发位置更新事件时,通过广播发送数据。
- 如果 MainActivity 正在运行,则通过 broadcastReciever 收听广播、更新 gui、将上次更新存储在类范围变量中(在 MainActivity 中)
- 当 ActivityRecognition 获得更新时,将数据与存储在 MainActivity 的类范围变量中的 GPS 数据一起记录在一个文件中。
这样做的一个明显问题是,虽然定位服务在后台运行,即使 MainActivity 已触发 onPause,但 ActivityRecognition 和文件记录器都没有作为服务在后台运行,因此需要 MainActivity 运行。
为一个目的处理多个后台进程的最佳做法是什么?创建后台服务来处理这两个?然后在应用程序 onCreate/按钮点击上运行它?然后通过广播消息将数据发送到 MainActivity(如果它在那里可以收听)?
【问题讨论】:
标签: java android gps activity-recognition