O mecanismo "onActivityResult" do Android não funcionará

Eu tenho um problema grande e frustrante com um aplicativo simples. Eu tenho duas atividades - A e B. A atividade A abre a atividade B em um clique de botão. A atividade B tem duas "extremidades": Se o usuário clicar em B.Back se apenas terminar e voltar para A, se o usuário clicar no botão B.OK, a atividade B será concluída, mas antes disso, o resultado será "OK" para que a atividade A seja fechada também.

Este é o pseudo código para 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();
    }

A atividade B faz assim:

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

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

O problema é que isso não vai funcionar - quando eu pressionar o "btnOK" B deve terminar, A deve "pegar" o resultado e terminar também, mas isso simplesmente não vai acontecer. O que estou perdendo?

questionAnswers(1)

yourAnswerToTheQuestion