2012-01-30 56 views
5

我想创建一个内容提供者,它将带来来自Web服务器的结果。它就像我发送一些后参数到我的web服务器,它返回给我一些JSON响应,我必须解析并显示在android的快速搜索框中。内容提供者从Web服务器获取结果?

我已经看过SearchableDictionary,但他们似乎没有连接到服务器来获得结果。我在网上搜索,但没有任何适当的例子。

我该怎么办?

+0

究竟是什么问题?创建内容提供者,还是以JSON格式从Web服务器获取(并缓存)数据? – 2012-01-30 06:26:31

+0

对于这样一个不负责任的问题感到抱歉。我想知道如何从内容提供者调用Web服务器?是否有必要创建一个AsyncTask? – Enigma 2012-01-30 06:31:23

+1

也许这个问题http://stackoverflow.com/questions/4264589/search-suggestions-from-network-resource-into-quick-search-box可以帮助你。 – Eleni 2012-03-23 14:14:15

回答

1

ContentProviders并不意味着是异步数据源。在这种情况下,您需要创建一个SyncAdapter,它使本地数据库与远程数据存储保持同步并显示来自此本地数据库的数据。 ContentResolverSyncAdapter很好地结合为此提供。

从'开始建筑之前'看点4从http://developer.android.com/guide/topics/providers/content-provider-creating.html#DataStorage

+0

根据我发送给它的查询,我的Web服务器返回不同的数据。我的意思是说没有固定的存储库。而Web服务器也需要认证。需要登录才能获得结果。在这种情况下是否有可能在Android的快速搜索框小部件中获得结果? – Enigma 2012-01-30 07:11:02

+0

如果您使用的是快速搜索框,您必须事先进行身份验证。在这一点上,您不会打扰用户浪费时间进行身份验证。至于“基于查询部分的不同数据”,难道你不能在某个层面上抽象出来,以暴露单个数据存储接口吗? – 2012-01-30 07:26:04

+0

这就像在云上搜索一些数据。我发送一个查询,服务器将返回匹配查询的记录。我如何在这种情况下使用syncadapter? – Enigma 2012-01-30 07:37:29