나는 함께 살아야하거나 죽어야하는 활동 쌍을 가지고 있습니다. 기본적으로 AlphaActivity는 일부 작업을 수행 한 다음 BetaActivity에 대한 의도 (startActivityForResult()
)를 전달합니다. BetaActivity가 완료되면 GammaActivity에 대한 의도 (startActivity()
)를 발송 한 다음 finish()
을 호출합니다. 마무리하자마자 AlphaActivity의 onActivityResult()
메서드를 호출하기를 기대했지만 그럴 수 없었습니다. 내 디자인은 AlphaActivity의 onActivityResult()
안에 있으며 finish()
이라고합니다. 내 계획에 따르면 GammaActivity에 도달하면 사용자가 AlphaActivity 또는 BetaActivity로 돌아갈 수 없습니다. 그러나 현재 뒤로 버튼은 사용자를 AlphaActivity로 안내합니다.onActivityResult의 finish 활동이 작동하지 않습니다.
실제로 작동하지 않을 수있는 이유에 대해 관심이 많으므로 실제로 작동하지 않는 이유가 있지만 여기에 대해 설명하는 것은 의미가 없습니다.
편집 :
이 코드는 모든 꽤 표준 물건입니다: 베타 내부에서 알파
private void startBetaActivity() {
Intent intent = new Intent(this, BetaActivity.class);
startActivityForResult(intent, Constant.EXIT_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == Constant.EXIT_CODE) {
this.finish();
}
}
}
내부에서
:
if (success) {
startGammaActivity();
finish();
}
당신이 묘사 한 것이 효과가 있습니다. BetaActivity를 시작한 코드를 게시 한 다음 끝낼 수 있습니까? –
'BetaActivity'의 결과로 무엇인가를해야합니까? 왜'AlphaActivity'는'BetaActivity'를 시작할 때 그냥'finish()'할 수 없습니까? – codeMagic