gpt4 book ai didi

android - OnActivityResult 不是在一台 Android 设备上调用,而是在另一台设备上调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:13:01 25 4
gpt4 key购买 nike

我有四台设备,其中一台是三星 Galaxy 6,我最近注意到,当我尝试结束裁剪 Activity 并发回数据时,永远不会调用 onActivityResult。相反,它奇怪地跳过了 onActivityResult 应该打开的类,并返回到那里的上一个 Activity 。没有发生崩溃,没有传递到此代码中的空值

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();

永远不会调用 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 {

有人知道这可能是什么吗?三星和另一部手机都在运行 Lollipop 。

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

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);
}

最佳答案

只是碰巧不小心弄明白了这个问题。我一直被这个问题激怒了。

首先,我尝试删除 bundle,并将图像作为 byte array 传入 intent。这样做之后还是不行。

然后我注意到,如果我从 intent 中删除图像,代码就会成功到达所有手机上的 onActivityResult。所以我做了一个解决方法,而不是在 Intent 中传递图像,而是将它保存在我在 onActivityResult 中访问的另一个类中。

我相信我从中得到的是 Galaxy 6 手机是我拥有的唯一一部创建了比可以通过 intent 传递的位图更大的位图的手机,如 byte[] 或否则。

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

关于android - OnActivityResult 不是在一台 Android 设备上调用,而是在另一台设备上调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32238081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com