我目前正在编写一个使用Google的Activity Recognition API的应用程序,但是在我的onHandleIntent方法中,当我在那里放置一个断点来检查从服务传入的意图时,它会向我显示过时的数据。尽管我在路上,甚至在高速公路上,但活动仍在继续。 [仅供参考我不是开车但是在行驶中的车辆:)]无论如何要冲洗结果?即使我断开连接并重新连接,我仍然得到这个STILL读数。
答案 0 :(得分:0)
我想我会分享这个问题,因为这是我在问题中描述的问题的部分解决方案。我已经调整了我的代码,目前似乎没有这个问题。我对传递给活动识别的意图所做的是给它一个动态id,我的理论是如果我断开连接并重新连接它将获得相同的代码,它可能是缓存陈旧状态。现在使用我的动态id,它真的不应该伤害任何东西b / c id只在调用remove更新后才会改变,我希望这会阻止缓存状态。
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)
希望这有帮助!