将位图作为额外的结果Intent完全关闭应用程序

问题描述:

当我从另一个活动返回到主活动并在返回Intent中放置一个额外的位图时,该应用程序完全完成,并且主活动中的onActivityResult根本不会被调用。将位图作为额外的结果Intent完全关闭应用程序

SecondaryActivity.java

private void returnFromModule(int result) { 
    Intent intent = new Intent(); 
    intent.putExtra(CameraModule.Keys.KEY_FILE_PATH, mFilepath); 
    //if the next line is omitted the app goes back normally to the main activity 
    intent.putExtra("data", mThumbnail); 
    setResult(result, intent); 
    finish(); 
} 

注意,一切正常,当我不把多余的位图。位图也不是很大。

public static Bitmap getThumbnail(String filepath) { 
    ExifInterface exifInterface = getExifInterface(filepath); 
    byte[] thumbnailData = exifInterface.getThumbnail(); 
    Bitmap thumbnail = BitmapFactory.decodeByteArray(thumbnailData, 0, thumbnailData.length); 
    return thumbnail; 
} 

这是放在意图中的缩略图位图。

MainActivity.java

这里是我的MainActivity的onActivityResult,但我不认为它很重要,因为很多时候一个位图被放在回归意向那就不叫的。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == Activity.RESULT_OK) { 
      ((TextView)findViewById(R.id.path)).setText(data.getExtras().getString(CameraModule.Keys.KEY_FILE_PATH)); 
    } 
} 

}

这里是我开始SecondaryActivity

startActivityForResult(new Intent(this, SecondaryActivity.class),1); 
+0

您是否从MainActivity启动了SecondardActivity?如果你这样做,你是否通过使用startActivityForResult()将意图返回给MainActivity来启动SecondardActivity?如果你不这样做,你必须在创建类似下面的答案时设置类信息。 – kimkevin

+0

是的,我开始了结果的活动。只有当我添加一个位图额外,它才能完成应用程序,否则它会正常返回。 – ninjaintrouble

+0

返回一个位图是一个非常糟糕的主意。而且它不起作用,因为你可以看到。更好地返回文件路径并让接收器提取位图。 – greenapps

有大小限制了可以穿越活动的内容。你不能这样做。

+0

我正在运行这与Android 6,不应该引发TransactionTooLargeException?位图也只是一个缩略图,应该通过,因为位图实现了Parcelable。 – ninjaintrouble

+0

请告诉我们您试图放入该意图的字节数量。 – greenapps

+0

位图是0.786 Mb – ninjaintrouble