![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - [?程式設計問題]請問Multi Thread問題
(https://www.pcdvd.com.tw/showthread.php?t=1064737)
|
|---|
[?程式設計問題]請問Multi Thread問題
請問ANdroid 的 Multi Thread問題
我有一個Object 這個Object裡面有很多SubObject 而SubObject又有很多SubSubObject 這些SubObject都要使用Object設置的command來詢問取得 而這個command本身繼承了 Asynctask達成了 所以可以算是一個Thread 我的問題是 我已經用command問到了Object有多少的SubObject 然後要更新UI 但是為了利用時間 所以更新時 要用command再去問有多少SubSubObject 如果直接在UI更新後面 接著寫 {用command再去問有多少SubSubObject} 就會讓UI更新比較慢 (看起來讓UI的主Thread分工去做的關係) 所以就想說 那用 new Thread(new Runnable(){ @Override public void run() { } }).start(); 來動作好了 結果 因為有很多的SubObject 所以需要用到for迴圈 然後每一個SubObject就會去觸發一個新的command 因此這樣就會導致CRASH 看LOG是說 Thread無法產生handler 請問我該如何寫? 謝謝 |
我先聲明,我只懂得multi-thread的運作原理,不懂android Multi Thread (programming)
看起來,樓主的使用方式,很像是把process 當做thread , 因此當memory resource不是很足的情況下 因此而Crash ,是嗎?? 所謂的command 我猜是OS本身的可執行程式(指令) , 是嗎?? |
建議你回學校重唸OS :agree:
|
看起來是兩個 thread..
thread(A) 與 thread(B) A 是 main/UI thread B 是用來跑 "問有幾個 subsubObj." 嗯.. 會不會是 "command詢問" 的問題.. 它沒辦法及時完成(回答有幾個?).. 要不要用 sendMessage 的方式來問有幾個 subsubObj? 這樣比較婉轉... :laugh: 再不然就先把 for loop 拿掉.. 看看只跑一個 "SubObject就會去觸發一個新的command" 會不會 crash.. 一點意見, 參考看看.. |
http://www.itkee.com/developer/detail-340a.html
因為沒看到程式碼,所以不知道是不是一樣的問題,可參考看看上面的網頁 網頁最後有一段總結: 因爲在Android中不能在子綫程中來刷新UI綫程,而可以在子綫程中添加hander來發送消息更新綫程。 |
| 所有的時間均為GMT +8。 現在的時間是07:35 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。