Android:如何取消有意图的位置更新请求?

Posted

技术标签:

【中文标题】Android:如何取消有意图的位置更新请求?【英文标题】:Android: how to cancel a request of Location update with intent? 【发布时间】:2010-06-13 08:52:25 【问题描述】:

我向 requestLocationUpdates(provider, minTime, minDistance, PendingIntent) 注册了一个 PendingIntent。但是当我的广播接收器收到这个意图时,我如何使用 removeUpdates(PendingIntent) 删除这个请求?接收者没有对原始 PendingIntent 的引用。

【问题讨论】:

【参考方案1】:

您创建一个等效的PendingIntent。换句话说,创建一个与您最初使用的 Intent 匹配的 Intent(尽管您可以跳过任何额外内容),将其包装在与您最初使用的相同类型的 PendingIntent 中,然后在 @987654325 中使用 PendingIntent @调用。

【讨论】:

谢谢。在我的接收者的 onReceive(context, intent) 方法中,我立即调用了 PendingIntent origPendingIntent = PendingIntent.getBroadcast(context,0, intent, PendingIntent.FLAG_UPDATE_CURRENT) 并传入相同的意图以删除更新。但不知何故,它并没有删除更新请求。我仍然可以收到更新。 @wei:尝试摆脱FLAG_UPDATE_CURRENT,看看是否有帮助。 非常感谢!现在可以了。事实证明,我必须创建一个新的 Intent 实例(不知道为什么)并将标志设置为 0 才能使其工作。

以上是关于Android:如何取消有意图的位置更新请求?的主要内容,如果未能解决你的问题,请参考以下文章

Android:请求位置更新

Android触摸事件

Android OkHttp + Retrofit 取消请求的方法

Android OkHttp + Retrofit 取消请求的方法

Android O 在打盹模式下前台服务未接收位置更新

如何在运行时请求位置权限