使用位图或bytearray进行失败的BINDER TRANSACTION

时间:2018-02-03 00:05:28

标签: android bitmap

首先,我尝试使用Bitmap在活动之间传递大图像文件,但收到以下错误:

  

E / JavaBinder:!!!失败的粘合剂交易! (包裹大小= 6560360)

我在SO上阅读了一个解决方案,首先将Bitmap转换为字节数组,所以我试了一下:

FirstActivity

ByteArrayOutputStream stream = new ByteArrayOutputStream();
myBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

Intent i = new Intent(getApplicationContext(), SecondActivity.class);
i.putExtra("photo",byteArray);
startActivity(i);

SecondActivity

byte[] byteArray = getIntent().getByteArrayExtra("photo");
Bitmap loopPhotoBackground = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);

但这会产生同样的错误。如何在活动之间传递图像数据?

1 个答案:

答案 0 :(得分:0)

  

如何在活动之间传递图像数据?

你没有。之一:

  • 这些应合并为一个活动,或

  • 您应该拥有两种活动共享的某种图像缓存,将标识符传递给缓存条目