看板 AndroidDev 關於我們 聯絡資訊
開發層: 應用 問題: 問題的起頭只是因為我剛開始寫了一個需要接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