关于三星手机调用系统相机拍照旋转屏导致图片数据丢失问题

调用三星系统相册拍照后发现他会坑爹的旋转一下,导致页面生命周期重新执行数据丢失

建议单独做一个页面用来调起系统相机,然后重写该activity的

@Override
	protected void onSaveInstanceState(Bundle outState) {
		Log.e("转屏","这里处理的是数据的存储");
		outState.putString("file",file.getAbsolutePath());
		super.onSaveInstanceState(outState);
	}

	@Override
	protected void onRestoreInstanceState(Bundle savedInstanceState) {
		super.onRestoreInstanceState(savedInstanceState);
		Log.e("转屏","这里处理的是数据的恢复");
		file = new File(savedInstanceState.getString("file"));
	}

两个方法,并在oncreat中做下判断

savedInstanceState是否为空在进行为空不为空的相应操作例如我这里写的是
为空的时候创建图片路径、不为空就不创建了。

if (savedInstanceState==null) {
			// 初始化数据
			File f1 = new File(FileManager.getCompressFilePath());
			if (!f1.exists()) {
				f1.mkdirs();
			}
			file = new File(FileManager.getCompressFilePath() + System.currentTimeMillis() + ".jpg");
		}


2、因为我这是要上传多张图片的,写完上面的操作后当拍摄完第一张图返回正常显示 ok 没问题,然后再次拍照第二张图,然后就懵逼了,因为上面的操作我只写在了调取相机页面,拍照后的转屏导致所有的页面都跟着旋转了一下,所以我这个地方的数据也特么的丢失了。
因为多图上传功能在多个不同activity都有,每个地方都重写上面的方法就比较麻烦了,而且还要存储集合类
所以就换了种方式在manifest的相应activity下添加
android:configChanges="orientation|keyboardHidden|screenSize" 注意一定要加上screenSize 不加的话在低版本有效,但是在4.0+是没有效果滴,这句话的作用:我去复制下<-_-!>切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值