我的应用程序定期收集活动识别的检测活动数据。 我实现了它exactly as described in the documentation,但间隔一分钟。
只要用户已登录 - 使用PendingIntent
注册的应用程序即可从Google Play过程接收更新。
请不要每分钟告诉我有关电池使用情况,网络和每分钟请求更新的性能问题,除非它与我的问题有关:
问题:在某些设备中(在Nexus 5中它发生的最多),在半夜5-6小时 - IntentService
已停止调用。
我不确定,但怀疑它与Google优化有关,并且重要的运动传感器没有检测到进入活动识别机制的任何动作处于空闲模式,如文档中所述发生了。
对我的应用来说,知道每分钟的当前活动大小是很重要的,即使它保持不变,或者长时间闲置......
我的问题:
答案 0 :(得分:4)
每ActivityRecognitionClient.requestActivityUpdates:
为了节省电量,当设备“仍然”时,活动报告可能会停止。很长一段时间。一旦设备再次移动,它将恢复。这仅在支持Sensor.TYPE_SIGNIFICANT_MOTION硬件的设备上发生。
如你所怀疑的那样。您没有理由不能使用the many data storage techniques保存最后一个值 - 简单的SharedPreference可能就您的情况而言。
如果您直接触发基于被调用的IntentService的操作(一个坏主意,因为其他应用程序可能导致它非常快速地触发),而不是仅仅根据活动的变化,那么您应该解除这些操作,而不是{{3}或者在您需要的任何特定时间间隔内触发set an alarm,从您上次收到的活动中读取当前值。