![]() |
||
|
*停權中*
加入日期: Dec 2010
文章: 341
|
請問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 請問我該如何寫? 謝謝 |
|||||||
|
|
|
Elite Member
![]() ![]() ![]() ![]() ![]() 加入日期: Jan 2002
文章: 4,032
|
我先聲明,我只懂得multi-thread的運作原理,不懂android Multi Thread (programming)
看起來,樓主的使用方式,很像是把process 當做thread , 因此當memory resource不是很足的情況下 因此而Crash ,是嗎?? 所謂的command 我猜是OS本身的可執行程式(指令) , 是嗎??
__________________
您想買新硬碟嗎? 購買前請務必參考這篇文章,是我的實際經驗 還想讓統一賺你的錢嗎?統一集團成員(能見度高的): 星巴克、家樂福、7-11、無印良品、黑貓宅急便、聖娜多堡、阪急百貨、 康是美、博客來、夢時代、Mister Donut 、Cold Stone 、龜甲萬、 維力33%股權、光泉31%股權、Smile速邁樂、紅心辣椒、台北轉運站(統一企業BOT) 統一LP33膠囊有環保署早已列管的一級管制品: DNOP塑化劑 |
||
|
|
|
Major Member
![]() 加入日期: Mar 2011
文章: 108
|
建議你回學校重唸OS
![]()
__________________
|
|
|
|
Basic Member
加入日期: Apr 2005
文章: 16
|
看起來是兩個 thread..
thread(A) 與 thread(B) A 是 main/UI thread B 是用來跑 "問有幾個 subsubObj." 嗯.. 會不會是 "command詢問" 的問題.. 它沒辦法及時完成(回答有幾個?).. 要不要用 sendMessage 的方式來問有幾個 subsubObj? 這樣比較婉轉... 再不然就先把 for loop 拿掉.. 看看只跑一個 "SubObject就會去觸發一個新的command" 會不會 crash.. 一點意見, 參考看看.. |
|
|
|
Junior Member
![]() ![]() ![]() 加入日期: Apr 2003
文章: 751
|
http://www.itkee.com/developer/detail-340a.html
因為沒看到程式碼,所以不知道是不是一樣的問題,可參考看看上面的網頁 網頁最後有一段總結: 因爲在Android中不能在子綫程中來刷新UI綫程,而可以在子綫程中添加hander來發送消息更新綫程。 |
|
|