startActivityForResult 不会 return 到 Activity 的同一个实例

startActivityForResult doesn't return to the same instance of Activity

我正在使用以下代码从相机拍摄照片。我在 CameraActivity class 中使用 startActivityForResult 作为 ACTION_IMAGE_CAPTURE 意图。相机可以打开,拍照效果很好。但是当它回到 CameraActivity 时,它会进入 CameraActivity 的另一个实例。我在这两种方法中打印 hascode 值,它给出了不同的值。我不明白为什么它会创建两个活动。有人知道这个错误吗?

public class CameraActivity  extends Activity{

private ImageView imageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if(savedInstanceState == null) {
        setContentView(R.layout.fragment_imageview);
        imageView = (ImageView)findViewById(R.id.imageview);
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        System.out.println(this.hashCode());
        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(takePictureIntent, 2);
        }
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == 2 && resultCode == RESULT_OK){
        System.out.println(this.hashCode());
        Bundle args = data.getExtras();
        Bitmap bitmap = (Bitmap)args.get("data");
        imageView.setImageBitmap(bitmap);

    }
   }
 }

在相机应用程序运行期间,系统可能正在破坏您的 activity。当相机应用程序启动时,您的应用程序处于后台,因此它有资格被销毁。您可以通过将日志记录添加到您的 onDestroy 覆盖来测试它。