Механизм Android «onActivityResult» не будет работать
У меня большая и неприятная проблема с простым приложением. У меня есть два вида деятельности - A и B. Деятельность A открывает действие B одним нажатием кнопки. Упражнение B имеет два «конца»: если пользователь нажимает B.Back, если он только что закончил, и возвращается к A, если пользователь нажимает кнопку B.OK, действие B завершается, но до этого оно устанавливает результат «ОК», поэтому действие A можно закрыть. слишком.
Это псевдокод для 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();
}
Деятельность B делает это так:
btnOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//some other code...
finishOK();
}
});
private void finishOK() {
setResult(RESULT_OK, new Intent());
finish();
}
Проблема в том, что это не сработает - когда я нажимаю «btnOK», B должен закончить, A должен «поймать» результат и завершить тоже, но это просто не произойдет. Что мне не хватает?