通过Intent.putExtra发送字节数组不起作用

时间:2015-09-13 10:20:06

标签: java android android-intent android-activity camera

我试图通过Intent putExtra方法将捕获的图像的字节数组数据发送到另一个视图但是仅适用于前置摄像头(因为质量较低)比后凸轮)。通过后置摄像头拍摄的图像需要显示年龄,并且大部分时间都会使应用程序崩溃。

我也试过压缩,但那也没有做到。看看我的代码:

captureImage.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mCamera.takePicture(null, null, new PictureCallback() {
                    @Override
                    public void onPictureTaken(byte[] data, Camera camera) {

                            Intent i = new Intent(CameraActivity.this, ImageEditor.class);
                            i.putExtra("image", data);
                            startActivityForResult(i, 0);

                         }
                });
            }
        });

第二个活动没有打开,应用程序在捕获图像后也没有响应(通过后置摄像头)。然而这适用于前置摄像头,因为我猜测字节阵列的尺寸相对较小,并且需要比后置摄像头捕获的图像更少的内存。

如何解决此问题,以便将活动A中捕获的图像发送到活动B?

1 个答案:

答案 0 :(得分:2)

  

如何解决此问题,以便将活动A中捕获的图像发送到活动B?

最好的答案是:根本不做。如果那些UI紧密耦合,它们应该是一个活动,可能使用多个片段。

下一个最佳答案是:小心地通过static数据成员传递它(例如,活动A将byte[]放入static数据成员,活动B从中获得)。一旦活动B引用了该数据,您需要确保不会泄漏此byte[],方法是将数据成员设置为null

相关问题