[問題] ListView非同步更新的實作

看板AndroidDev作者 (光怪鹿離)時間13年前 (2011/01/25 21:41), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
開發層: 應用 問題: 問題的起頭只是因為我剛開始寫了一個需要接API並用ListView輸出的小程式, 可是隨後我發現只要行動網路不夠穩的時候連接API會讓整個程式畫面在輸出 前暫時卡住。 於是稍微檢視一下,問題主要出現在我把查詢動作寫在onCreate中, 這麼一來就代表了他會等到查詢動作結束後才會輸出畫面, 我稍微參考了一下官網的LifeCycle,提到Activity在走到onStart時代表了 畫面已經輸出,於是我把查詢動作移進了onStart.... 不過結果是一樣的,查詢動作還是跑在畫面輸出前 接著我在逛了一下官方的開發者論壇,有人提到了因為Activity從onCreate到 onDestroy基本上是同一個執行緒在處理,所以無論怎麼移原則上都沒辦法改變 這個結果,建議分裂出一個執行緒同步去處理 so,我就乖乖的照著做了,New了一個Thread去處理,把查詢寫在run裡面之後 (Thread.start()擺在onCreate中) 開斷點debug下去看,順序是有達到我的要求.. 不過問題來了,查詢完要將結果寫入ListView時它竟然跳出Exception!!! 我看了一下錯誤訊息...是一串英文(廢話) 大意是說不能用多出來的執行緒去 操作原本Layout上的物件 看到差點沒翻桌了...有人能給點建議嗎? 參考: 官網文件及論壇 補充說明: 其實用BuittonClick去觸發更新ListView也不是不行啦...但就是有種 輸掉的感覺XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.224.47.154
文章代碼(AID): #1DFjC9LK (AndroidDev)
討論串 (同標題文章)
文章代碼(AID): #1DFjC9LK (AndroidDev)