具有视图模型的 Android 上的无头活动



我正在创建一些地理围栏。为了以后删除它们,我必须坚持使用创建它们的Intent

我想我会把它存储在一个ViewModel里,然后把它附加到一个无头Activity.当我发现这个时,我感到很兴奋:如何处理无头活动的无声 SEND 意图。但是,您必须对活动调用finish(),我认为这也会导致视图模型被丢弃。

您无需保留Intent本身即可删除地理围栏,并且您尝试执行的操作将不起作用。

删除地理围栏 API 需要PendingIntent。当比较两个 PendingIntent 以查看它们是否相等时,它们遵循 Intent.filterEqual(( 的规则:

确定两个意向是否相同,以便进行意向解析(过滤(。也就是说,如果它们的操作、数据、类型、类和类别相同。这不会比较意图中包含的任何额外数据。

只要您可以使用与以前相同的信息构建 Intent,就可以构建一个新的PendingIntent并且仍然使其匹配。

或者,您可以使用 removeGeofences(( 方法获取字符串请求 ID,您可以通过 setRequestId(( 将其添加到地理围栏中。然后,您只需要跟踪字符串即可取消地理围栏。

相关内容

  • 没有找到相关文章

最新更新