解决三星note3调用系统拍照后程序崩溃或无法获取图片

三星note3上调用拍照时,发现调用相机拍完照片返回时,导致系统崩溃或者无法获取到图片,仔细研究发现,拍完照后触发它的activity重新走了onCreate()方法。

解决方法:

1、刚开始调用了onSaveInstanceState(Bundle savedInstanceState)和onRestoreInstanceState(Bundle savedInstanceState)这个方法来实现,虽然方法比较笨,但是可以通过在onSaveInstanceState中保存一些你需要的变量,在onCreate()方法中判断savedInstanceState是否为null,不为null则调用onRestoreInstanceState()方法取出之前存的变量来使用,这相当于重新加载了一遍当前activity。

2、上面的方法并不是解决问题的根本办法,后来通过查看发现在调用相机时,activity从竖屏切换到了横屏,在横竖屏切换导致了activity重新装载,找到根本原因后,在activity中通过 android:configChanges=”orientation|keyboardHidden|keyboard|screenSize”这个属性,可以约束调用相机时,保持当前activity竖屏状态不变,从而解决了activity重新加载的问题,在manifest文件中配置。
代码:

<activity
    android:name=".ui.activity.TakePhotoActivity"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize"
    android:screenOrientation="portrait" />
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值