作者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