我有一个SearchView
设置,我有一个松散解耦的架构,使用Retrofit
and Otto
.
我想知道什么最佳实践用于 Android 中的搜索,或任何一般的移动应用程序(意味着类似的东西也可以应用于 iOS)。
具体来说,我正在使用AutoCompleteTextView
处理我的建议SearchView
数据直接来自API
。我不认为这是最佳实践,因为每次用户更改文本中的文本时SearchView
已启动 API 调用。
我正在考虑在 SQLite 中存储缓存,然后从那里 ping 结果,但如果用户想要最直接的数据怎么办?你会怎么处理?那会采用什么模式?
如果您对 Android 中搜索的最佳架构或方法有任何想法,我们将不胜感激。
我认为在用户停止输入之前进行 API 调用是没有意义的。因此,您可以设置延迟,例如 500 毫秒。当用户停止输入时,500 毫秒后您将调用 API 并显示结果。
您可以使用Handler
's postDelayed
安排搜索 API 调用的方法。可以使用Handler来控制消息队列。您发布了延迟的Runnable
每次用户键入一个字符并取消以前的消息时。它看起来像这样:
public void onTextChanged(CharSequence s, int start, int before, int count) {
handler.removeCallbacks(searchRunnable);
handler.postDelayed(searchRunnable, 500);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)