为父活动而不是子活动调用onActivityResult

时间:2013-01-23 10:54:34

标签: android android-activity tabactivity

我有一些带有几个子活动的tabActivity。来自活动 A 我启动相机或图库:

final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Utils.getImagePath().getPath());
intent.putExtra("return-data", true);
startActivityForResult(intent, Utils.CROPPER_PICK_FROM_CAMERA);

final Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, Utils.CROPPER_PICK_FROM_FILE);

结果返回到活动 A

我还有活动 B ,它会进行图像裁剪(我从活动 A 开始)。但它的结果返回到TabActivity(在某些手机上它返回活动 A )。我该如何预防?

修改

我从活动A 开始活动B(进行裁剪)(不是来自活动,来自其他类)

final CropStarter starter = new CropStarter(mContext);
starter.startCropping(path);

public void startCropping()
{
final Intent intent = new Intent(mContext, CropImage.class);
        intent.setData(mImagePath);
        intent.putExtra("return-data", true);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Utils.getImagePath());
        intent.putExtra("outputFormat", "PNG");
        mContext.startActivityForResult(intent, Utils.CROPPER_CROP_FROM_CAMERA);
}

编辑2:

如果我使用此代码从A开始活动B:

final Intent intent = new Intent(this, CropImage.class);

它具有相同的结果:结果返回 tabActivity

1 个答案:

答案 0 :(得分:0)

所以问题是我忘了在清单中添加活动标签:

android:configChanges="bla bla bla |screenSize

在某些设备上,相机视图会触发屏幕尺寸更改,因此我没有处理这种情况。