Почему иногда срабатывает на тот onActivityResult?

Есть две Активити aForm1 и aForm2.

Из aForm1 вызываю aForm2, а в активити aForm2 запускаю startActivityForResult(captureIntent, RESULT_CAMERA), а результат возвращается часто в aForm1 в onActivityResult(), не в aForm2 в onActivityResult(), откуда был вызван.

captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
captureIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, selectedPhotoPath);
captureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
startActivityForResult(captureIntent, RESULT_CAMERA);

В обоих формах возвращается одинаково,

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data);
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {...}
else {super.onActivityResult(requestCode, resultCode, data);}

Больше никаких флагов не использую. Какую то системность обнаружить не удается, возвращается когда как.

Еще было замечено, что когда я закрываю форму Камеры для возврата в экран aForm2 есть сообщение

W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProx

Почему так происходит? Как сделать так, чтобы результат возвращался только в то место, откуда был вызван.


Ответы (0 шт):