[問題] Andrdoid上的Thread問題

看板AndroidDev作者 (Vcman)時間13年前 (2012/11/24 17:36), 編輯推噓3(3013)
留言16則, 4人參與, 最新討論串1/1
我有寫一個是要在計算Android上圖片的Hash程式,在背景上執行。但是還要把計算好的H ash透過Socket傳送給Server做判斷在傳回結果,過程有點多。這樣導致了有數筆資料時 會產生ANR的問題。 我用Handler運行一個Runnable,Runnable裡面負責計算一筆以上的FileHash並且傳送給Se rver,這邊還是會有ANR的問題。 所以我想問問大家 能不能在Runnable上每次在產生一個新的Thread來進行運算然後關閉 ?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.241.97.10

11/24 20:00, , 1F
how abour AsyncTask class?
11/24 20:00, 1F

11/24 21:18, , 2F
對吼 還可以用AsyncTask...
11/24 21:18, 2F

11/25 21:53, , 3F
你該不會直接用View.getHandler().post(runnable)吧?
11/25 21:53, 3F

11/25 21:55, , 4F
View.getHandler() post上去的會block ui thread(當然
11/25 21:55, 4F

11/26 11:58, , 5F
你在mainthread裡面弄網路嗎?
11/26 11:58, 5F

11/29 06:47, , 6F
mainthread弄網路現在會被擋下來 另外我總覺得有些人
11/29 06:47, 6F

11/29 06:47, , 7F
(不是指原PO)有種奇怪的觀念,只要套個runnable就是
11/29 06:47, 7F

11/29 06:47, , 8F
multi-thread? 其實handler.post跟multi-thread沒關係啊
11/29 06:47, 8F

11/29 06:48, , 9F
這奇怪的觀念到底哪來的冏
11/29 06:48, 9F

11/29 07:54, , 10F
我在thread上執行也會產生強制關閉不是在mainthread
11/29 07:54, 10F

11/29 10:48, , 11F
我是想說用handler呼叫runnable,runnable在呼叫runnable.
11/29 10:48, 11F

11/30 00:38, , 12F
runnable只是個程式片段的定義 getHandler通常來說
11/30 00:38, 12F

11/30 00:38, , 13F
拿取的會是UI thread, 你在runnerable裡面跑一個
11/30 00:38, 13F

11/30 00:39, , 14F
runnable其實就是拿出ui thread要他跑一組code而已
11/30 00:39, 14F

11/30 00:55, , 15F
他比較接近Lambda或者Block(如果你寫過ios)的概念
11/30 00:55, 15F

11/30 00:56, , 16F
或者,很抽象的說,也很類似函數指標
11/30 00:56, 16F
文章代碼(AID): #1Gi9KnY1 (AndroidDev)