是否可以有一个 EditText 框,用户开始输入联系人的姓名,然后出现可能的联系人列表,用户选择一个,然后显示所选联系人的详细信息....无需首先收集所有用户设备上的联系人?
根据我的发现,您首先必须检索用户设备上的所有联系人,将其放入列表中,然后从该列表中读取,而不是我上面描述的内容。
更昂贵的是 - 检索所有联系人或一次请求一个,具体取决于用户在该文本框中开始输入的内容?
是否可以有一个 EditText 框,用户开始输入联系人的姓名,然后出现可能的联系人列表,用户选择一个,然后显示所选联系人的详细信息....无需首先收集所有用户设备上的联系人?
根据我的发现,您首先必须检索用户设备上的所有联系人,将其放入列表中,然后从该列表中读取,而不是我上面描述的内容。
更昂贵的是 - 检索所有联系人或一次请求一个,具体取决于用户在该文本框中开始输入的内容?
这取决于您如何定义昂贵的..
将所有联系人读取到 RAM 中的数组并循环访问它们会消耗大量内存。
每次用户输入内容时查询数据库在数据库事务中是昂贵的(无论何时数据缓存在 RAM 中或数据库事务在 I/O 中的开销都取决于您无法控制)
我想说在数据库中搜索比在内存中搜索要慢。
案例:如果数据集更大,这种方式可能会降低性能,因为会使用更多内存。
在您的情况下,可能有两种可能性:
1.)要么您首先检索所有联系人,然后在其中搜索
2.) 为编辑文本中键入的每个字符向数据库发起查询。
我认为,费用和性能也取决于数据集的大小。