我的应用程序中出现多线程问题。我知道Threads/AsyncTasks/etc中有很多帖子,但似乎没有解决我的具体问题。在初始化ListView之前在单独的线程中下载数据
基本上,我在我的搜索Activity中得到一个查询字符串,然后将它发送给我的结果Activity,其中字符串用作SQL查询,结果作为JSON对象数组返回,然后显示这些对象在ListView中(它是结果Activity的一部分)。我所有的SQL连接和检索都是在结果Activity开始时调用的一个单独的类中完成的。
MySQLRetrieve data = new MySQLRetrieve();
ArrayList<Tile> tiles = data.getResults(nameValuePairs, isLocationSearch);
上面的代码是我如何获得SQL响应并将其转换为ArrayList,然后使用填充我的ListView。 getResults()负责所有这些。
我已经有单独的线程工作下载图像到ListView,但我无法工作得到SQL查询和结果运行在它自己的线程。我想要达到的是:
- 用户在搜索活动中输入搜索查询。
- 意图被发送到结果活动,并立即开始。
- ProgressDialog(只是动画的微调器的东西,而不是加载栏)在SQL查询发生时显示。
- ListView用来自JSON数组的对象填充,延迟加载图像。
我有步骤1,2和4运行良好,但3是问题。我查了一下AsyncTasks,这似乎是答案,但我无法让他们工作。有没有人有解决这个问题?我需要这样做,因此在开始结果Activity时,UI会立即更改为结果Activity,并且不必等到返回SQL响应为止。
是的,我已经阅读了无痛线程的帖子。
谢谢。
你是什么意思“......似乎没有工作”? – DeeV
我的ListView不会随下载结果更新。 – jmhend