0

我想使用相机设置我的个人资料图像,但Activity有时我会在startActivityForResult使用ACTION_IMAGE_CAPTURE.

相机运行成功,我可以拍照了。

但是当我在拍照后按保存按钮时,有时我的活动会重新启动。

我怎么解决这个问题?请帮我!

这是我的代码:

i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, 
           Uri.fromFile(new File(getExternalFilesDir(null).getPath() + "/profile.png")));

startActivityForResult(i, which);

谢谢你。

4

2 回答 2

0

您的活动被破坏和重新创建的原因可能是由于方向变化;您的应用程序以纵向运行,但相机处于横向运行。返回您的活动时,它首先以横向返回,然后以纵向(或类似的方式)重新创建自己。

您仍然应该得到 的响应startActivityForResult(),因此只需在 中处理响应onActivityResult(),将意图保存在 中onSaveInstanceState(),然后在重新创建活动时再次提取它onCreate()

于 2013-05-11T15:23:06.273 回答
-2

只需在 onActivityResult 中调用 onResume()。因此,只要相机活动完成,您的活动就会恢复

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    bitmapImage = (Bitmap) data.getExtras().get("data");
    onResume();
  }
于 2014-07-09T07:40:15.123 回答