我正在为一个小型研究项目开发一个应用程序,该项目利用 ActivityRecognition
API 和 GPS。我想要实现的目标是让两个 API 作为后台进程运行,并定期在日志文件中记录当前数据。收集数据后可以手动分析该日志文件。
我的麻烦是理解最好的方法。我最初是从ActivityRecognition开发的sample app 。我的流程如下:
- 当点击 MainActivity 中的按钮时,通过 requestLocationUpdated 创建位置监听器。还要在 MainAcitivity 中创建 ActivityRecogition 监听器。
- 当触发位置更新事件时,通过广播发送数据。
- 如果MainActivity正在运行,则通过broadcastReciever监听广播,更新gui,将最后的更新存储在类范围变量中(在MainActivity中)
- 当 ActivityRecognition 获得更新时,将数据与存储在 MainActivity 的类范围变量中的 GPS 数据一起记录在文件中。
明显的问题是,尽管位置服务在后台运行,即使 MainActivity 遇到 onPause,但 ActivityRecognition 和文件记录器都不会作为服务在后台运行,因此需要 MainActivity 运行。
为了一个目的处理多个后台进程的最佳实践是什么?创建后台服务来处理这两个问题?然后在应用程序 onCreate/按钮点击上运行它?然后通过广播消息将数据发送到 MainActivity(如果它可以监听)?
最佳答案
Kirgy.. 将服务用于 GPS 任务,并为 ActivityRecognition 使用接收器和每次 ActivityRecognition 发生时触发广播的 Intent
关于java - Android后台服务最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36305039/