调用三星系统相册拍照后发现他会坑爹的旋转一下,导致页面生命周期重新执行数据丢失建议单独做一个页面用来调起系统相机,然后重写该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方法