将AutoCompleteTextView与中等大小的字符串数据集一起使用的最佳方法

时间:2016-04-26 00:59:05

标签: android database sqlite

如果我想使用AutoCompleteTextView作为搜索功能来根据用户当前输入的文本生成字符串列表(假设大约1000-3000个字符串),那么从这个字符串加载这些字符串会更好吗?外部数据库或将它们存储在内部SQLite数据库中并从那里加载字符串?

我计划存储的字符串数量是否太大(每个字符串长度大约为10-20个字符,它们是常量并且永远不会更改)在SQLite数据库中使用?这会减慢和/或增加我的应用程序多少钱?我应该只使用外部数据库吗?当用户输入字符串时,加载时间是否会很快?

我问,因为如果我可以避免使用外部数据库,我宁愿这样做,因为我不必担心访问数据库,维护数据库和安全问题的用户数量。

1 个答案:

答案 0 :(得分:1)

  

从外部数据库加载这些字符串或将它们存储在内部SQLite数据库并从那里加载字符串会更好吗?

取决于你的意思更好'。如果将它们存储在本地数据库中,那么性能应该更好,我建议在这种情况下使用索引。同时,这个解决方案需要更多的内存,尽管如果它们只是单字符串,我认为3000个字符串应该没问题。

  

我计划存储的字符串数量是否太大而无法在SQLite数据库中使用?

取决于这些字符串是什么。如果它们不长,那么我认为应该没问题。如果每个字符串包含大量文本,那么我认为这可能会在通过SQL查询搜索它们时引起问题。

  

这会减慢和/或增加我的应用程序多少钱?

它不应该引人注意,你实际上可以为此创建一个测试,不应该花费很多精力。取决于您的用例。

  

我应该只使用外部数据库吗?

如果这些字符串类似于常量并且它们不会改变,您可以考虑将它们存储在本地数据库中,这应该会提高性能而不是网络加载解决方案。

  

当用户输入字符串时,加载时间是否会很快?

您可以在他们“停止”时加载第一组数据。打字。请在此处查看我对类似问题的回答:Best Practices for Handling Search

加载数据列表后,您可以使用此本地缓存进行进一步搜索,它应该足够快,以便用户不会发现任何延迟。