intentChooser返回奇数requestCode

时间:2014-10-21 18:34:35

标签: android onactivityresult

我正在尝试从发送电子邮件附件的共享选择器中捕获响应,因此我知道何时将从sdcard中删除该文件。

intentChooser

调用Fragment
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("message/rfc822");
    intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"email"});
    intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
    intent.putExtra(Intent.EXTRA_TEXT, "body");

    Uri uri = Uri.fromFile(file);
    intent.putExtra(Intent.EXTRA_STREAM, uri);
    startActivityForResult(Intent.createChooser(intent, "Send..."), Consts.SHARE_INTENT);

SHARE_INTENT为public static final int SHARE_INTENT = 2;

的位置

然后在持有此片段的Activity中,我尝试通过

捕获响应
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {   

    if (requestCode == Consts.SHARE_INTENT) {
        if (resultCode == RESULT_OK) {
                //do something
        }

        if (resultCode == RESULT_CANCELED)
            Toast.makeText(this, "Share cancelled", Toast.LENGTH_SHORT).show();
    }
}

然后我打开共享选择器并取消它在外面触摸它,但后来我没有抓住4作为requestCode,但我得到一些奇怪的数字,如144563。

任何人都知道为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

如回答https://stackoverflow.com/a/6147919/437039所述,我不小心删除了对super.onActivityResult(requestCode, resultCode, data)的电话。

任何有类似问题的人,请查看我在此链接的答案。