我的应用程序定期收集活动识别检测到的活动数据。我实现了它的与文档中描述的完全相同,但有一分钟的间隔。
只要用户登录--应用程序在PendingIntent
中注册以接收来自google进程的更新。
请不要告诉我电池的使用,网络,以及每分钟的请求更新导致的性能问题,除非与我的问题有关:
问题:在某些设备中,(在Nexus 5中最多发生),在半夜持续5-6个小时-- IntentService
停止了。
我不确定,但我怀疑这与Google的优化和重要的运动传感器没有检测到任何进入活动识别机制的运动有关,就像可能发生的文档中所描述的那样。
--对我的应用程序来说,了解当前每分钟的活动是什么很重要,即使它保持不变,或者长时间空闲也是如此。
我的问题:
发布于 2014-06-12 06:41:41
每ActivityRecognitionClient.requestActivityUpdates
为了节省电池,当设备“静止”很长一段时间后,活动报告可能会停止。一旦设备再次移动,它将恢复。这种情况只发生在支持Sensor.TYPE_SIGNIFICANT_MOTION硬件的设备上。
正如你所怀疑的。您没有理由不能使用多种数据存储技术保存最后一个值--对于您的情况,一个简单的SharedPreference可能就足够了。
如果您是基于被调用的IntentService直接触发操作(因为其他应用程序可能会导致它极快地触发),而不仅仅是活动的变化,那么您应该将这些操作解耦,而不是按照您需要的特定时间间隔触发设置警报或周期同步适配器,读取最近收到的活动的当前值。
https://stackoverflow.com/questions/24177858
复制相似问题