我写一个Android应用程序,我的形式接受数据,然后调用Android相机为通过下面的代码的图片上传:相机API调用破坏父活动
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri();
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
// start the image capture Intent
startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
呼叫工作得很好,相机图像成功返回。但问题出现在这之后。
我一直在测试2-3电话,分别是:1。 A116福邦2. 三星Galaxy大 3.小蜜
应用程序运行的Micromax的手机上就好了。
三星手机有一个问题,导致旋转应用程序崩溃。我找到了一个修补程序,下面添加到清单:
android:configChanges="orientation|keyboardHidden|screenSize"
但是,小米手机有一个问题。它似乎总是调用“onCreate()”方法,每次相机意图返回一个图像。这扰乱了我从用户接受的以前的表单数据,通过做出不必要的API调用。
我试图通过下面的代码重写及的onSaveInstanceState onRestoreInstanceState:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// save file url in bundle as it will be null on scren orientation
// changes
outState.putParcelable("file_uri", fileUri);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// get the file url
fileUri = savedInstanceState.getParcelable("file_uri");
}
但onRestoreInstanceState永远不会被调用。 感谢
也使用onActivityResult()方法。 –
我已经用它来获取相机结果 –