Mechanizm „onActivityResult” Androida nie działa

Mam prosty i frustrujący problem z prostą aplikacją. Mam dwa działania - A i B. Aktywność A otwiera działanie B na kliknięcie przycisku. Zadanie B ma dwa „końce”: jeśli użytkownik kliknie B. Wróć, jeśli tylko skończysz i wróci do A, jeśli użytkownik kliknie przycisk B.OK, działanie B zostanie zakończone, ale przed tym ustawia wynik „OK”, więc działanie A może zostać zamknięte zbyt.

Oto pseudo kod A:

btnNext.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                                //some code...
                startAct(data);
            }
        });

private void startAct(Intent inte) {
        startActivityForResult(inte, -999);
    }

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        System.out.println(resultCode);

        if(requestCode != -999)
            return;

        if(resultCode == RESULT_OK)
            finish();
    }

Działanie B robi to tak:

btnOk.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    //some other code...
                    finishOK();
                }
            });

private void finishOK() {
        setResult(RESULT_OK, new Intent());
        finish();
    }

Problem polega na tym, że to nie zadziała - kiedy nacisnę „btnOK” B powinno się skończyć, A powinien „złapać” wynik i skończyć, ale to po prostu nie nastąpi. Czego mi brakuje?

questionAnswers(1)

yourAnswerToTheQuestion