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?