在永无止境的服务中使用全局变量
Use of global variable in never ending service
我创建了一个永无止境的 service
,但我不确定我对这个 service
所做的事情是否可行。我将全局变量声明为 static String list_contact
并使用 onCreate
方法中的 db
填充列表。我想避免每次都从数据库中检索 data
,因为我需要快速与列表进行比较。但也许将 data
存储在 Service
的全局变量中是一个问题。另外,我需要另一个包含数千个数据的列表。如果不好,我可以找到 memory
和 speed
之间的折衷方案来检索数据吗?谢谢。
将静态变量放在服务中并假设该服务将永远 运行 不是一个好主意。
最大的缺点是,服务不会 运行 永远在后台,从 Android O 开始。最新版本对后台处理施加了更多限制,并在应用程序运行几分钟后终止您的服务放入后台。
您可以实现 Object pool pattern,它将经常访问的数据存储在一个对象中。这不需要服务 运行ning 并且可以满足您的目的。您需要确保您没有在这些对象中以明文形式维护敏感数据。
或者,您也可以阅读 this post,其中描述了 Android 的缓存。
我创建了一个永无止境的 service
,但我不确定我对这个 service
所做的事情是否可行。我将全局变量声明为 static String list_contact
并使用 onCreate
方法中的 db
填充列表。我想避免每次都从数据库中检索 data
,因为我需要快速与列表进行比较。但也许将 data
存储在 Service
的全局变量中是一个问题。另外,我需要另一个包含数千个数据的列表。如果不好,我可以找到 memory
和 speed
之间的折衷方案来检索数据吗?谢谢。
将静态变量放在服务中并假设该服务将永远 运行 不是一个好主意。
最大的缺点是,服务不会 运行 永远在后台,从 Android O 开始。最新版本对后台处理施加了更多限制,并在应用程序运行几分钟后终止您的服务放入后台。
您可以实现 Object pool pattern,它将经常访问的数据存储在一个对象中。这不需要服务 运行ning 并且可以满足您的目的。您需要确保您没有在这些对象中以明文形式维护敏感数据。
或者,您也可以阅读 this post,其中描述了 Android 的缓存。