使用监听器或广播接收器进行Android活动识别?

时间:2013-07-03 10:36:03

标签: android google-play-services

我想知道为什么ActivityRecognitionClient没有方法用标准java监听器作为参数请求更新?更奇怪的是,在同一时间,LocationСlient有such method,它运作良好。

活动识别的

Official example看起来很糟糕。很多耦合和样板代码。看起来IntentService是处理ActivityRecognitionClient更新的唯一变体。这非常不舒服。

来自Android团队的@Guys,为什么会这样?

作为开发人员,我希望在下一版Google Play服务中看到requestActivityUpdates(间隔,监听器)方法。

目前,有没有人知道,是否可以使用BroadcastReceiver处理来自ActivityRecognitionClient的更新?

1 个答案:

答案 0 :(得分:5)

  

我想知道为什么ActivityRecognitionClient没有方法用标准java监听器作为参数请求更新?

许多好的问题根据专家经验产生一定程度的意见,但这个问题的答案几乎完全基于意见,而不是事实,参考或具体的专业知识。

除此之外,为requestActivityUpdates()引用the documentation

  

常见用例是应用程序希望在后台监视活动并在检测到特定活动时执行操作。要在不需要始终在后台消耗资源的服务的情况下执行此操作,检测到的活动将通过intent传递。应用程序指定PendingIntent回调(通常是IntentService),在检测到活动时将调用该回调。

  

看起来IntentService是处理ActivityRecognitionClient更新的唯一变体。

不是。

  

目前,有没有人知道,是否可以使用BroadcastReceiver处理来自ActivityRecognitionClient的更新?

有几种PendingIntent类型,由各种工厂方法创建。该示例显示使用getService()创建将PendingIntent调用的startService()。我们欢迎您使用任何其他PendingIntent,例如来自getBroadcast()的{​​{1}},sendBroadcast()