我创建了一个永无止境的service
,但我不确定我对此service
所做的事情是否正常。我声明了像static String list_contact
这样的全局变量
并使用db
onCreate
方法填写列表。我想避免每次都从数据库中检索data
,因为我需要快速地与列表进行比较。但是,将data
存储在Service
的全局变量中可能会出现问题。另外,我需要另一个包含数千个数据的列表。如果它不合适,我可以在memory
和speed
之间找到用于检索数据的折衷方案吗?感谢。
答案 0 :(得分:0)
将静态变量放在Service中并假设该服务将永远运行,这不是一个好主意。
最大的缺点是,服务不会永远在后台运行,从Android O开始。最新版本对后台处理应用更多限制,并在应用程序投放到后台几分钟后终止您的服务。
您可以实现Object pool pattern,它将频繁访问的数据存储在Object中。这并不需要运行服务并且可以满足您的需求。您需要确保不在这些对象中以明文形式维护敏感数据。
或者,您也可以阅读描述Android缓存的this帖子。