2013-01-23 110 views
2

我有tabActivity与几个子活动。从活动一个我开始相机或画廊:onActivityResult被调用父级活动不子

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开始)。但它的结果返回到TabActivity(在某些电话上它返回到活动A)。我怎样才能防止它?

EDIT

我开始活性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

什么是你从B的startActivityForResult的代码? –

+0

可能是你的mContext的一个问题 – Tobrun

+0

mContext被定义为Activity。我在另一个地方使用** CropStarter **(不是从标签活动的小孩开始裁切,它起作用) –

回答

0

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

android:configChanges="bla bla bla |screenSize

在有些设备的摄像头视图会触发屏幕大小发生变化,所以我没有处理这种情况。

相关问题