【问题标题】:Android: Gallery intent returning resultCode == RESULT_CANCELEDAndroid:图库意图返回 resultCode == RESULT_CANCELED
【发布时间】:2011-07-14 22:02:29
【问题描述】:

我正在启动从图库中挑选图片的意图,但该意图始终返回结果代码 RESULT_CANCELED。我尝试了很多不同的代码,但没有任何帮助,这让我觉得我可能遗漏了一些东西,比如在 Android 清单中的 Activity 中添加了一些东西?

我的代码:

// The Intent
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == RESULT_OK){
        Uri targetUri = data.getData();
        Bitmap bitmap;
        try {
            bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(targetUri));
            profileImage.setImageBitmap(bitmap);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

【问题讨论】:

  • 把你的活动完成()代码也
  • 嗯,你的意思是把finish()放在startActivityForResult之后吗?这对我来说唯一要做的就是完成活动(我不想要,我希望它返回到相同的活动)并且仍然使用 RESULT_CANCELED。

标签: android android-intent gallery


【解决方案1】:

好的,所以我解决了这个问题。我的问题原来是在 Gallery Intent 完成之前调用了 onActivityResult() 方法。我在这里找到了解决方案:onActivityResult() called prematurely

基本上,我在清单中将活动指定为“singleTask”。 将其更改为“singleTop”为我解决了这个问题。

【讨论】:

  • 当我的活动启动模式为“singleInstance”时,我遇到了同样的问题。将其更改为“singleTop”解决了我的问题。感谢您分享您的解决方案。
  • 发送邮件时出现问题
  • 这并不能解决我的问题。这个 SO 答案stackoverflow.com/a/25492138/3913366 也对我不起作用。在 4.0、5,0 和 5.1 上测试。
  • 谢谢亲爱的,您的解决方案对我有用,我在更改为“singleTop”后使用“singleInstance”,一切正常
  • 对我不起作用,我的解决方案是删除 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
【解决方案2】:

这救了我的命! \0/

android:launchMode="singleTop"

【讨论】:

    猜你喜欢
    • 2019-05-02
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 2019-10-14
    • 2020-03-06
    • 2017-01-27
    • 1970-01-01
    相关资源
    最近更新 更多