El mecanismo "onActivityResult" de Android no funcionará

Tengo un problema grande y frustrante con una aplicación simple. Tengo dos actividades: A y B. La actividad A abre la actividad B al hacer clic en un botón. La actividad B tiene dos "extremos": si el usuario hace clic en B. Regresar si acaba de terminar y vuelve a A, si el usuario hace clic en el botón B.Aceptar, la actividad B termina pero antes de eso establece el resultado "OK" para que la actividad A pueda cerrarse también.

Este es el 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 la actividad B le gusta esto:

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

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

El problema es que esto no funcionará: cuando presiono "btnOK" B debería terminar, A debería "capturar" el resultado y terminar también, pero simplemente no sucederá. ¿Qué me estoy perdiendo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta