我有一个包含位置集合的 Sqlite 数据库。内容提供者用于访问此数据库。
然后,通过单击活动中的位置列表,这些位置将在数据库中标记为活动或非活动。
然后运行一个服务,该服务将监听活动位置并在到达该位置时执行某些操作。
我的问题是服务运营的最佳方式是什么。
要么让它监视活动位置的光标,该光标会在数据更改时自动更新。包含位置列表的所有活动都必须将位置设置为活动,然后调用服务意图以确保其运行。
在我看来,这样做的好处是,无论数据库中发生什么,服务都是最新的。但是我不确定每次位置更改时保持打开的光标并遍历它是否有效。
另一种方法是让活动在数据库中将位置设置为活动,然后绑定到服务并将位置数据发送给它以进行收听。然后,服务将其存储在一个列表数组中,每当位置发生变化时,都会遍历列表以查看是否已到达该位置。
这样做的缺点是,对于每个位置修改,服务都必须绑定到并且位置会改变。一个优点可能是没有打开游标,并且只存储了一个带有位置的小列表数组。
那么是在服务中游标还是绑定到服务?还是我错过了更好的方法?