Der Android-Mechanismus „onActivityResult“ funktioniert nicht

Ich habe ein großes und frustrierendes Problem mit einer einfachen Anwendung. Ich habe zwei Aktivitäten - A und B. Aktivität A öffnet Aktivität B mit einem Klick auf eine Schaltfläche. Aktivität B hat zwei "Enden": Wenn der Benutzer auf B.Back klickt, wenn er gerade fertig ist und zu A zurückkehrt, wenn der Benutzer auf B.OK klickt, wird Aktivität B beendet, aber bevor das Ergebnis auf "OK" gesetzt wird, kann Aktivität A geschlossen werden auch.

Dies ist der Pseudocode für 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();
    }

Aktivität B gefällt Folgendes:

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

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

Das Problem ist, dass dies nicht funktioniert - wenn ich "btnOK" B drücke, sollte A das Ergebnis "fangen" und auch beenden, aber es wird einfach nicht passieren. Was vermisse ich?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage