我正在寻找实现这个的通用设计:
我想注册到 ActivityRecognition API 以接收此 API 不时调用的 IntentService 中的定期更新,而我的应用程序中的其他所有内容都完全不活动(这里的目标是避免耗尽太多电池电量设备)。
问题在于,在新的 ActivityRecognition API 设计中,它与 GooglePlayServices 客户端相关联,例如:
ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates(
myGoogleApiClient,
3000L,
myActivityRecognitionPendingIntent);
从逻辑上讲,如果创建它的 Activity 或服务被销毁,则此客户端会消失,从而导致任何 ActivityRecognition 更新丢失。
显然,如果我让服务(或 Activity )保持 Activity 状态,并且持续保持用于启动 ActivityRecognition API 的 GooglePlayServices 客户端(在本例中为 myGoogleApiClient),显然一切都会顺利……但这就是我想要的避免……
如何实现?
最佳答案
您可以查看警报管理器和那里的权衡,请参阅 https://developer.android.com/training/scheduling/alarms.html
如果 API 仅在适当的时间自动唤醒,则更有效的解决方案是尝试使用广播接收器。如果您要求设备保持唤醒状态,您应该查看 https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver.html
关于android - 在应用程序处于非 Activity 状态时处理 ActivityRecognition.API Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37883542/