我遇到了一个奇怪的情况,我之前已经为活动识别更新创建了待处理意图
PendingIntent pendingIntent = PendingIntent.getService(mContext, getIntentID(), intent,
PendingIntent.FLAG_UPDATE_CURRENT);
我的getIntentID代码是
private static int getIntentID(){
if(intentID == 0)
return intentID = (int)(System.currentTimeMillis());
return intentID;
}
我之所以这样做,是因为每次我停下来开始服务时,我都希望确保id是唯一的。
但是现在当我在我的intentService中读取正在发送的活动时,我很确定这不是我最近的挂起调用请求。我相信它来自前一个。但是我不知道如何取消它,因为我不知道前一个的id。 1.为什么我不知道以前的身份证?当我通过删除更新取消更新时,我确实使用了我认为正常工作的getIntentID但是当我停止我的应用程序时,再次启动它但没有启动活动识别的update()代码,我注意到我仍然得到活动,当我使用调试器时。
这是我的更新请求
ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates(getActivityRecognitionClient(),
Utility.DETECTION_INTERVAL_TIME, pendingIntent())
这是我的删除代码
ActivityRecognition.ActivityRecognitionApi.removeActivityUpdates(getActivityRecognitionClient(),
pendingIntent())
所以我的问题是,有没有办法取消活动识别的所有通话时间。即使我不知道pendingintent信息?
答案 0 :(得分:0)
所以我的问题是,有没有办法取消所有的通话时间 活动认识。
如果您引用API
的{{1}},它只包含两种方法
一个用于请求更新
ActivityRecognitionApi
和
第二个删除更新
requestActivityUpdates(GoogleApiClient client, long detectionIntervalMillis, PendingIntent callbackIntent)
这两种方法都需要removeActivityUpdates(GoogleApiClient client, PendingIntent callbackIntent)
。
显然答案是否。
希望这会对你有所帮助。
答案 1 :(得分:0)
好的,似乎没有办法取消活动识别的待处理意图。然而LIke Nag表示我最终做的是更改我的intentservice类的名称并改为使用它并跟踪待处理的Id信息。现在我没有任何来自之前电话的请求