Intent.ACTION_PICK关闭onActivityResult上的Activity

时间:2014-05-24 21:38:54

标签: android android-intent android-activity

Activity A启动Activity B

然后,在活动B中,有一个按钮,用于选择

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*"); startActivityForResult(intent,
SELECT_PICTURE);

然后,我有功能

@Override 

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

有时可行,有时候调用onActivityResult时,Activity B会重新启动,有时它会回到活动A,甚至在通过onActivityResult之前。

我一直在读它可能因Ram问题而发生,但我该如何解决呢?

谢谢!

1 个答案:

答案 0 :(得分:0)

检查是否在清单中添加

        android:noHistory="true"

到活动B 如果是这样,请删除它 你不能使用这个标志并使用OnActivityResult 因为这个标志会在活动进入后台后立即导致您的活动结束

如果不是没有历史的问题,它可能与意图的行动有关 试试这个:

                    intent.setType("image/*");
                    intent.setAction(Intent.ACTION_GET_CONTENT);
                    startActivityForResult(Intent.createChooser(intent,
                            "Select Picture"), SELECT_PICTURE);

和onActivityResult

    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {
            Uri selectedImageUri = data.getData();
            selectedImagePath = getPath(selectedImageUri);
        }
    }