2014-10-21 1 views
0

Я пытаюсь поймать ответ от share chooser, который отправляет вложение электронной почты, поэтому я знаю, когда я удалю файл с SD-карты.intentChooser возвращает нечетный requestCode

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.

У кого-нибудь есть идеи, почему это происходит?

ответ

0

Как указано в этом ответе https://stackoverflow.com/a/6147919/437039, я случайно удалил звонок до super.onActivityResult(requestCode, resultCode, data).

Любой, у кого есть аналогичная проблема, проверьте ответ, который я здесь связал.