android - 用于选择图像的 startActivityForResult(),为什么我没有得到 RESULT_OK?

标签 android

在我的简单 Activity 中,我启动了图像选择。

在选择的结果上我想显示图像。

但调试时我看到 resultCode == RESULT_OK 不是 true

我在这里做错了什么???

public class PictureActivity extends Activity {
private static final int SELECT_PICTURE = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.setType("image/*");
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivityForResult(intent, SELECT_PICTURE);
}

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {

            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.setType("image/*");
            intent.setData(data.getData());
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        }
    }
}
}

最佳答案

这是因为:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

来自文档:http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK

“当调用者请求正在启动的 Activity 的结果时,不能使用此标志。”

关于android - 用于选择图像的 startActivityForResult(),为什么我没有得到 RESULT_OK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20549833/

相关文章:

android - Android 库中复合组件的自定义样式

android - 在 Google Cardboard 应用程序中启用 OpenGL 调试

android - Chrome for Android 用户切换到桌面版后的用户代理是什么?

java - 如何在应用程序中添加asyncTask代码?

java - 过滤 SimpleAdapter 时出现 NullPointerException

Android:为什么必须使用 getBaseContext() 而不是这个

java - 任务 com.google.firebase.a.v 被 java.util.concurrent.ThreadPoolExecutor 拒绝

android - 如何使用 HttpsUrlConnection 而不是 DefaultHttpClient

java - 日历提供者 : querying Calendars by multiple IDs will return an empty cursor

java - 我正在尝试通过 Whatsapp 或任何其他通讯应用程序发送/共享 mp3 原始文件。