OnActivityResult不是在一个Android设备上调用,而是在另一个Android设备上调用

Ash*_*ado 5 android android-intent

我有四个设备,一个是三星Galaxy 6,我最近注意到,当我尝试结束并从作物活动发回数据时,我onActivityResult从未调用过.相反,它奇怪地跳过onActivityResult应该打开的类并返回到那里的前一个活动.不会发生崩溃,也不会传递给此代码的空值

Bundle extras = new Bundle();
extras.putParcelable(RETURN_DATA_AS_BITMAP, croppedImage);

extras.putIntArray(RETURN_CROP_INFO, cropInfo);
setResult(RESULT_OK,(new Intent()).setAction(ACTION_INLINE_DATA).putExtras(extras));

finish();
Run Code Online (Sandbox Code Playgroud)

就在onActivityResult永远不会被调用.

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if (resultCode == RESULT_OK) {
            if (requestCode == Constants.INSTANCE.PICK_FROM_FILE ) {
                if (data != null) {
                    try {
Run Code Online (Sandbox Code Playgroud)

任何人都知道这可能是什么?三星和其他手机都在运行棒棒糖.

这是自定义裁剪器的激活.自定义裁剪器代码相当大,但我不确定在这里发布是否有意义.

private void performCrop(Uri picUri)
{
    // create explicit intent
    Intent intent = new Intent(this, CropImage.class);

    String filePath = picUri.toString();
    intent.putExtra(CropImage.IMAGE_PATH, filePath);
    intent.putExtra(CropImage.SCALE, true);
    intent.putExtra(CropImage.ASPECT_X, 3);
    intent.putExtra(CropImage.ASPECT_Y, 4);
    intent.putExtra("return-data", true);
    intent.putExtra(CropImage.SCALE_UP_IF_NEEDED,true);

    // start activity CropImage with certain request code and listen
    // for result
    startActivityForResult(intent, picCrop);
}
Run Code Online (Sandbox Code Playgroud)

Ash*_*ado 1

刚刚无意中发现了这个问题。我一直被这个问题激怒。

首先,我尝试删除bundle,并将图像作为 a 传递byte arrayintent. 这样做之后还是不行。

然后我注意到,如果我从代码中删除图像,代码intent就会设法到达onActivityResult所有手机上。因此,我做了一个解决方法,不是在意图中传递图像,而是将其保存在我在onActivityResult.

我相信我从中得到的是 Galaxy 6 手机是我所拥有的唯一一款创建的位图大于可以通过意图传递的位图的手机,无论是作为还是byte[]其他。

希望这对以后的人有帮助!