位置: 编程技术 - 正文

调用安卓相机闪退(安卓拍照闪退)

编辑:rootadmin
1.现象

推荐整理分享调用安卓相机闪退(安卓拍照闪退),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:安卓相机突然黑屏什么都用不了怎么办,安卓相机故障怎么办,安卓相机闪光灯怎么开,安卓相机突然黑屏什么都用不了怎么办,android调用相机后拍照后崩溃,android调用相机后拍照后崩溃,安卓相机故障怎么办,安卓手机相机打开闪退,内容如对您有帮助,希望把文章链接给更多的朋友!

在使用安卓手机的一些应用调用照相机时,我们会发现有时候当我们拍照完毕时,程序会出现闪退,非常影响用户体验。目前项目中也有类似的拍照上传功能,当使用米3手机测试时,拍照上传功能可以正常使用,当我们换上红米或者其他一些比较早或者比较低端的手机时,就出现了闪退的问题。

1.1开启相机的intent1.2onActivityResult接收intent返回值并获取bitmap2.分析问题

经过debug我们可以发现,如果程序发生闪退,此时mPictureCachePath值为null,可是我们在一开始已经为这个变量赋值,为什么当从相机程序返时,mPictureCachePath这个全局变量会变为null?

那我们给mPictureCachePath赋个初始值看看,结果当程序返回时,这个变量的值不是我们赋值过的路径,而是那个初始值。这样,我推测当前所在的Activity在相机程序返回时应该是被重新创建了。

通过调试,我们发现如果使用米3手机,程序不闪退,相机程序在返回我们的Actvity时没有执行onCreate方法,而使用红米手机,程序闪退时,此时我们的Actvity执行了onCreate,也就是说用红米时,当我们开启相机程序时,我们自己的Activity已经被销毁了! 所以当相机程序返回我们的Activity时,这个Activity是刚刚创建的,我们刚刚为图片创建的路径记录变量此时其实并没有被赋值。

3.解决方式 调用安卓相机闪退(安卓拍照闪退)

既然变量有可能丢,那么我们就可以把这个变量记录下来,可以使用sp等。假如我们的程序中还需要记录一些其他的变量,比如一些我们自定义的比较复杂的类,sp就没办法满足存储的需要。

此时我们可以使用如下两个方法

这两个方法并不是Activity每次都会调用的,我们注意到onCreate和onRestoreInstanceState都有个Bundle类型的参数,那么这个参数是谁传来的呢?肯定是onSaveInstanceState传来的。

当我们的Activity在未经我们自己finish的情况下被结束(没有被回收也会执行onSaveInstanceState),onSaveInstanceState方法就会被调用。此时我们就可以利用outState参数来存储我们的数据,当onCreate或者onRestoreInstanceState(只有Activity被真正回收后才调用)时,将这些数据拿出来重新赋值给我们的成员变量,这样,就算是Activity被销毁了,我们依然可以重新获得相关变量的值。

这样,mPictureCachePath的值就可以被保存下来,当程序返回时,如果Activity没有被回收,则不会执行onRestoreInstanceState方法,如果被回收了,就调用onRestoreInstanceState方法对变量值进行恢复。

版权声明:本文为博主原创文章,未经博主允许不得转载。

安卓上传本地图片闪退 1.现象当我们在app上上传一些安卓的本地图片时,有时当上传某些图片时会莫名其妙的闪退,而检查时发现并没有oom异常。同样上传一些类似的图片却可

安卓自定义状态栏颜色以与APP风格保持一致 我们知道IOS上的应用,状态栏的颜色总能与应用标题栏颜色保持一致,用户体验很不错,那安卓是否可以呢?若是在安卓4.4之前,答案是否定的,但在4.

安卓调用系统ContentProvider模糊查找联系人 prename=codeclass=java//模糊查找联系人bt_fu.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){Stringname=null,number=null,email=null;ContentResolvercr=getContentResolver();String

标签: 安卓拍照闪退

本文链接地址:https://www.jiuchutong.com/biancheng/382162.html 转载请保留说明!

上一篇:关于 UNITY3D接入 SHARE SDK 安卓微信部分(不跳审核)的注意点!(unity接入第三方sdk)

下一篇:安卓上传本地图片闪退(安卓手机怎么导入地图)

  • 公司车辆过户给个人车牌可以保留吗
  • 应交个人所得税计提分录
  • 个税申报的收入是应发工资还是实发工资
  • 预缴增值税如何计提
  • 收到退税如何记账
  • 财务报表提示未审计
  • 用自产货物用抵债交换是否视同销售
  • 用于不动产的进项税能抵扣吗
  • 应交税费进项税额属于什么科目借贷方向
  • 冲销预付账款后该如何做账务处理呢?
  • 企业承租经营的承租人取得的所得
  • 分公司注销所得税
  • 应交增值税减免税款账务处理
  • 企业所得税退税怎么做账务处理
  • 增值税开票流程图解
  • 建筑企业增值税预缴
  • 福利费的进项税额转出
  • 购买方申请的红字信息表编号如何查询
  • 股权转让缴印花税公司用进账吗
  • 企业所得税预缴税款表怎么填
  • 成品油电子普通发票开错了
  • 招待费进项税能抵扣嘛
  • 微信收款会计分录,然后提现有手续费
  • 个体工商户年检怎么办
  • 网络适配器感叹号代码43
  • 保税区开出的专票可以抵扣吗
  • 交了预付款后,一方违约怎么处理
  • 增值税加计抵减最新政策2022
  • PHP:oci_statement_type()的用法_Oracle函数
  • php判断https
  • 对于接受捐赠的固定资产,其成本应当依次按照
  • 房产税会计科目应该走税金及附加还是管理费用
  • PHP:oci_field_type_raw()的用法_Oracle函数
  • php tokenizer
  • u盘突然被写保护是坏了吗
  • 企业如何减少税收
  • vue中使用swiper6
  • wordpress自定义api
  • 职工福利费的税收金额怎么填写
  • phpinfo()中Loaded Configuration File(none)的解决方法
  • 小规模纳税人收入会计分录
  • vue自定义页面
  • 企业资产损失税前扣除管理办法最新
  • 分公司发生的业务,开票给总公司
  • python local
  • 成品油涉及范围有哪些
  • 银行贷款第三方是什么意思
  • 支付水电费会计
  • 补缴年报所得税怎么填
  • 当月发生业务下月开票如何做账
  • 营改增后不动产转让增值税
  • 待认证进项税怎么转出
  • 原材料入库损耗
  • 印花税算错了地方怎么办
  • 跟老师出差路上可以聊些什么
  • 小规模纳税人开专票税率是多少?
  • 非房产企业出售土地,能否计算抵减地价款
  • 生产成本怎么结转主营业务成本分录
  • SQL Server Parameter Sniffing及其改进方法
  • mysql1194
  • xp 指定的域不存在,或无法联系
  • 苹果mac安装win10系统
  • osx安装win10
  • PRISMSVR.EXE - PRISMSVR是什么进程 有什么用
  • win10怎么添加游戏手柄
  • win1021h2正式版
  • win8跳过开机密码
  • Win7旗舰版系统镜像文件
  • WIN10任务栏时间不动
  • shell脚本switch
  • shell脚本-p
  • python的idle打不开解决办法
  • js每天的定时任务
  • 简述javascript
  • 吉林税务网上办事大厅
  • 济南高新发展公告
  • 车辆购置税查询电话
  • 合肥高新公共事务管理有限公司
  • 消费税可抵扣的分录
  • 珠海车船税的缴纳地点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设