作者erspicu (.)
看板AndroidDev
標題Re: [問題] 連續快門拍攝問題
時間Fri Jan 27 12:22:21 2012
: 你拍完一張用sleep去等這樣是不對的,因為你不知道1.5秒內
: 能不能處理完,正確做法是用一個ConditionVariable來擋住,
: 等你的PictureCallback處理完之後再放他過去。
: : test.run();
: : 的方式去觸發執行 應該已經是幫我建好了獨立的thread才對?
: : 這方面請問應該怎麼處理?
: 這個和你用不用Thread沒有什麼關係...
後來發現的確是thread的問題
如果迴圈運作沒有自己跑一個thread
超過等待時間 程式就會出問題
而我那種寫法也不是正確的thread呼叫方式
copy網路上的貼上去就解決了
(new CaptureThread()).start();
至於PictureCallback該等多少時間
我想我的處理方式的確不是很好
不過至少以我的手機和記憶卡速度
設定1秒等待 是都能正常運作....
但是的確應該要找更完善的方法就是
你說的設條件flag來卡流程等待
我有試過用 while (flag == false) {} 來卡
不過怪怪的 沒辦法 再研究看看
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.5.213
1F:→ asilzheng:你原本的程式碼 怎麼會執行Thread.run()? 01/27 12:36
Java跟Android程式設計我不熟阿... 只是為了寫特定目地的程式 拼拼湊湊 東抄西抄
觀念上很薄弱 幾乎快等於零...
2F:推 LaPass:別用 while (flag == false) {} ...... 01/27 12:54
3F:→ LaPass:用wait() notifityAll() 我忘記怎麼拼了,但是我最常看到這 01/27 12:55
4F:→ LaPass:種寫法。另外,我之前用的方法是在while內加個Thread.sleep 01/27 12:56
5F:→ LaPass:但是這種方法,效能上會有問題。 01/27 12:57
※ 編輯: erspicu 來自: 219.70.5.213 (01/27 13:08)
http://ideone.com/z2sAp 最後版本... 可以用這程式來拍看看煙火了
暫時先用while(flag){}的方法
可能是當初哪裡沒寫好 後來這種等待方法ok了?
wait() notifityAll()再來研究看看
兩個原因會造成當掉 一個是迴圈等待太久 另一個是沒有等待Callback 造成資源衝突
※ 編輯: erspicu 來自: 219.70.5.213 (01/27 16:16)
6F:→ iincho:你先查一下condition variable怎麼用吧... 01/27 23:50
7F:→ iincho:你說的會當是ANR? 01/27 23:54
8F:→ erspicu:喔喔 剛查一下 原來有別人已經做好的輪子可以用 01/28 00:45
9F:→ erspicu:至於ANR 我不知道是啥耶 01/28 00:45
10F:→ erspicu:剛查一下 我知道anr是啥了 其中之一的確是ANR問題 沒錯 01/28 00:46
11F:→ iincho:哪個不是程式當掉.... 01/28 11:22
12F:推 LaPass:居然在主執行緒裡放無限迴圈.... = =" 01/28 12:11