을 다시 시작합니다. 그리고 C
에서 back
버튼을 클릭하면 E
이 아닌 B
으로 돌아갑니다.올바르게 나는이 같은 활동 순서를 가지고 활동
난 C
활동을 재개 한 후 back
버튼 클릭에 C
=>B
=>A
시퀀스를 원한다.
어떻게해야합니까?
을 다시 시작합니다. 그리고 C
에서 back
버튼을 클릭하면 E
이 아닌 B
으로 돌아갑니다.올바르게 나는이 같은 활동 순서를 가지고 활동
난 C
활동을 재개 한 후 back
버튼 클릭에 C
=>B
=>A
시퀀스를 원한다.
어떻게해야합니까?
FLAG_ACTIVITY_CLEAR_TOP을 제공하여 C
활동을 시작하십시오. C
활동은 위에있는 모든 활동을 닫은 후에 시작됩니다. C
. C
를 시작할 때 사용
Intent ci = new Intent(this,C.class);
ci.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(ci);
플래그 :
FLAG_ACTIVITY_CLEAR_TOP: A
-B
- C
- D
-E
-A
- B
-C
.
FLAG_ACTIVITY_REORDER_TO_FRONT : A
-B
- C
- D
-E
-A
- B
-D
- E
-C
.
onBackPressed() 메서드는 뒤로 버튼을 누를 때 발생하는 동작을 정의합니다. 따라서 기본적으로 onBackPressed() 내부에서 작업을 완료하면 활동이 Activity 스택에서 제거됩니다. onBackPressed()에서 Activity C의 Activity B를 명시 적으로 호출 할 수 있습니다.
public void onBackPressed() {
super.onBackPressed();
Intent i=new Intent(this,B.class)
startActivity(i);
}
마찬가지로, A.에서 B 마무리에서 시작
모든 그래서 그냥 뒤로 버튼을 클릭에 다음을 수행 활동입니다 - C에서
-
backButtonC.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(C.this, B.class);
//extras
C.this.startActivity(intent);
}
});
에서 B -
backButtonB.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(B.this, A.class);
//extras
B.this.startActivity(intent);
}
});
나는 'ReorderToFront'를 사용합니다. 나는 다른 사람들을 시도하고 답장을 할 것입니다. – arsena
좋아요,'ClearTop'이 내가 필요한 것 같아요. 하지만 사용하면 데이터가 손실됩니다. 'onPause' 어딘가에 데이터를 저장하고'onResume'을 가져 오는 가장 좋은 방법은 무엇입니까? – arsena
'ClearTop'을 사용하고'LaunchMode'를'SingleTop'에 추가했습니다. 이제는 모든 것이 잘 작동합니다. 감사! – arsena