Java / Android - 通过网络提供高效的自定义搜索建议

时间:2013-11-07 05:39:37

标签: java android multithreading search

这可能有点奇怪(这就是我正在检查Stack Overflow的原因)但我正在做的是编写一个带有搜索小部件的Android应用程序,它会在搜索建议弹出窗口中返回自定义结果(如下面的屏幕截图)。

我正在从Web API返回搜索建议。

Custom results in a search suggestion popup

我已经创建了一个自定义内容提供程序,它在query()方法中执行以下操作,虽然我的问题是,但是在将每个字母输入到搜索输入字段后调用query()方法 - 这意味着如果我输入一个长度为10个字母的搜索词(例如),它会向网络API发送10个搜索查询。

public Cursor query(final Uri uri,
                    final String[] projection,
                    final String selection,
                    final String[] selectionArgs,
                    final String sortOrder) {

    // Query the web API here

    final MatrixCursor cursor = new MatrixCursor( /* populate with columns */ );

    // Add results from web API to cursor

    return cursor;
}

为了解决iOS版本的应用程序,我设置了一个在0.7秒后执行的计时器,然后执行Web API调用。每次按键后,此计时器都会重置,因此用户必须在显示结果之前暂停一下键入。

我可以在iOS上执行此操作,因为搜索结果可以异步返回,但在Android上,query()方法需要同步返回结果。

有没有办法在Android上做类似的事情我可以设置一个计时器,或者我是否采用错误的方式进行自定义搜索建议?

0 个答案:

没有答案