0

是否可以有一个 EditText 框,用户开始输入联系人的姓名,然后出现可能的联系人列表,用户选择一个,然后显示所选联系人的详细信息....无需首先收集所有用户设备上的联系人?

根据我的发现,您首先必须检索用户设备上的所有联系人,将其放入列表中,然后从该列表中读取,而不是我上面描述的内容。

更昂贵的是 - 检索所有联系人或一次请求一个,具体取决于用户在该文本框中开始输入的内容?

4

2 回答 2

0

这取决于您如何定义昂贵的..

将所有联系人读取到 RAM 中的数组并循环访问它们会消耗大量内存。

每次用户输入内容时查询数据库在数据库事务中是昂贵的(无论何时数据缓存在 RAM 中或数据库事务在 I/O 中的开销都取决于您无法控制)

于 2013-11-09T08:07:04.283 回答
0

我想说在数据库中搜索比在内存中搜索要慢。

案例:如果数据集更大,这种方式可能会降低性能,因为会使用更多内存。

在您的情况下,可能有两种可能性:

1.)要么您首先检索所有联系人,然后在其中搜索

2.) 为编辑文本中键入的每个字符向数据库发起查询。

我认为,费用和性能也取决于数据集的大小。

于 2013-11-09T09:24:14.493 回答