我的應用程序中出現多線程問題。我知道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