您的位置:首页 > 移动开发 > Android开发

android解决相机开关的问题

2015-07-22 20:29 267 查看
进入Activity,在UI线程打开相机,是个IO操作,会阻塞

退出Activity,也在UI线程关闭相机,也会阻塞

给用户的感觉就是卡慢,体验非常不好。

参考其他APP打开二维码扫描时,都会出现一个“正在加载”的页面

解决方案:

开启一个子线程A,用于打开相机

退出时,再开启一个线程B,用于关闭相机

那么问题来了,场景如下:打开相机,又快速退出

A线程刚把相打开打开,正准备让UI线程使用相机(startPreview),却因为B线程已经调用了相机的release,这时就抛出运行时异常挂掉了。

解决方案又来了:

在B线程中,调用A线程的join()方法,意思是等待A线程执行完成了,再去调用相机的release,就不会有问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: