我必须编写一个Android应用程序,它不断监视加速度计并将样本保存在文件中。我知道如何获取加速度值以及如何在不停止采样的情况下编写文件中的每个样本,但是如何在不停止采样的情况下减少磁盘访问次数?我需要一些想法,因为我不知道从哪里开始。
谢谢
答案 0 :(得分:1)
您为什么担心磁盘访问?我们正在谈论Android,所以你的磁盘是基于闪存的,无论如何系统优化了磁盘访问。
但是,如果您想捕获数据并将其提供给一个活动,而您的文件仅作为永久存储,那么我建议您:
- 在服务中捕获您的数据
- 将数据缓冲在列表中
- 使用定期安排的异步任务将其写入磁盘
- 当服务停止时将其写入磁盘以确保您不会丢失数据
您可以直接从“活动”
访问服务来共享此数据答案 1 :(得分:0)
您可以将SensorListener放在IntentService中,以确保您在单独的帖子中收听传感器事件。
收到onSensorChanged
事件后,您可以使用ResultReceiver将结果发送回您的Activity,以显示/记录/缓存等。