2011-12-13 77 views
1

我正在编写一个包含字典的不同部分的Android应用程序。为了实现字典,我使用了以下技术:从Android中的Sqlite数据库加载大量的数据

  1. 读取Sqlite数据库中的所有单词并将它们存储在数组列表中。 (“从词汇中选择*”)。

  2. 使用数组列表上的简单二进制搜索来搜索定义。

从数据库中提取单词需要很长时间(大约50000个单词),有时会导致“内存不足”异常。然而,在加载数据后,它可以非常迅速地找到单词的定义。 请你指导我如何实现字典?

回答

4

数据库通常用于快速内存访问(磁盘访问)。把你的整个数据库放到内存中并没有什么意义。使用sql仅访问特定任务所需的信息。在性能查询键上创建索引

+1

+1,实际上我惊讶于Android上使用SQLite进行快速查询,甚至是复杂的查询。我现在使用数据库作为我的大多数应用程序的主存储器(当我需要信息时从中读取数据,只要用户输入一些内容就可以保存数据) – Guillaume

+1

作为旁注,这是真实的因为数据库是本地的 - 当数据库服务器和应用程序服务器之间存在网络时,将数据“缓存”在内存中是有意义的。很显然,Android并非如此。 – Guillaume

+0

其实我想给用户实时定义。另一方面,有editText有TextWatcher。 editText文本发生更改时,我必须从数据库获取数据。你仍然认为使用数据库或使用数组列表是个好主意吗?请帮帮我。 –

相关问题