我目前正在编写一个使用 Google 的 Activity Recognition API 的应用程序,但是在我的 onHandleIntent 方法中,当我在其中放置一个断点以检查从服务传入的意图时,它向我显示了陈旧的数据。即使我在路上,甚至在高速公路上,这项活动仍在回归。[仅供参考,我不是在开车,而是在行驶的车辆中:)] 无论如何都要刷新结果吗?即使我断开连接并重新连接,我仍然会看到这个 STILL 读数。
问问题
209 次
1 回答
0
我想我会分享这个,因为它是我在问题中描述的问题的部分解决方案。我已经调整了我的代码,目前似乎没有这个问题。我对传递给活动识别的意图所做的是给它一个动态ID,我的理论是,如果我断开连接并重新连接,它将获得相同的代码,可能会缓存陈旧状态。现在有了我的动态 id,它真的不应该伤害任何 b/c,id 只有在调用删除更新后才会改变,我希望这会阻止缓存状态。
private static void intentID(){
if(intentID == 0)
intentID = (int)(System.currentTimeMillis());
return intentID;
}
PendingIntent pendingIntent = PendingIntent.getService(mContext, intentID(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
//the modified pendingIntent being used
ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates(getActivityRecognitionClient(), 1000*10, pendingIntent)
希望这可以帮助!
于 2015-04-20T20:16:25.527 回答