我正在尝试使用 Intent 拍照。我的问题是,有时在拍照后,我调用 startActivityForResult 的 Activity 似乎已被破坏,因此再次调用 onCreate。
这是我点击一个imageview后拍照的代码,应该替换哪个图像:
if (!getPackageManager().hasSystemFeature(
PackageManager.FEATURE_CAMERA)) {
Util.makeLongToast(R.string.lang_no_camera);
} else {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_ITEM_PHOTO);
}
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.v(TAG, "onactivityresult called");
if (requestCode == TAKE_ITEM_PHOTO) {
if (data != null) {
imageUri = data.getData();
try {
img_photo.setImageBitmap(Media.getBitmap(
getContentResolver(), imageUri));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else
Log.w(TAG, "data is null");
}
}
所以我尝试的只是拍照并用它替换 imageview 的图像。但在某些情况下,onCreate 是在 onActivityResult 被调用之后调用的,新图像会丢失。
非常感谢您的帮助。
最佳答案
实际上,相机会导致您的 Activity 的方向发生变化,这就是您的 Activity 被销毁和重新创建的原因。
将此添加到您的 list 文件中,它将防止方向更改,并且您的 Activity 不会被破坏和重新创建。
<activity
android:name=".YourActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait" >
</activity>
关于android - 通过 Intent 拍照后调用的 Activity 被杀死/onCreate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411009/