取消所有活动识别请求(android)

时间:2015-06-27 11:05:24

标签: android activity-recognition

我遇到了一个奇怪的情况,我之前已经为活动识别更新创建了待处理意图

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信息?

2 个答案:

答案 0 :(得分:0)

  

所以我的问题是,有没有办法取消所有的通话时间   活动认识。

如果您引用API的{​​{1}},它只包含两种方法

https://developers.google.com/android/reference/com/google/android/gms/location/ActivityRecognitionApi

一个用于请求更新

ActivityRecognitionApi

第二个删除更新

requestActivityUpdates(GoogleApiClient client, long detectionIntervalMillis, PendingIntent callbackIntent) 

这两种方法都需要removeActivityUpdates(GoogleApiClient client, PendingIntent callbackIntent)

显然答案是

希望这会对你有所帮助。

答案 1 :(得分:0)

好的,似乎没有办法取消活动识别的待处理意图。然而LIke Nag表示我最终做的是更改我的intentservice类的名称并改为使用它并跟踪待处理的Id信息。现在我没有任何来自之前电话的请求