2014-10-19 3 views

답변

2

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.

+0

나는 'ReorderToFront'를 사용합니다. 나는 다른 사람들을 시도하고 답장을 할 것입니다. – arsena

+0

좋아요,'ClearTop'이 내가 필요한 것 같아요. 하지만 사용하면 데이터가 손실됩니다. 'onPause' 어딘가에 데이터를 저장하고'onResume'을 가져 오는 가장 좋은 방법은 무엇입니까? – arsena

+0

'ClearTop'을 사용하고'LaunchMode'를'SingleTop'에 추가했습니다. 이제는 모든 것이 잘 작동합니다. 감사! – arsena

0

onBackPressed() 메서드는 뒤로 버튼을 누를 때 발생하는 동작을 정의합니다. 따라서 기본적으로 onBackPressed() 내부에서 작업을 완료하면 활동이 Activity 스택에서 제거됩니다. onBackPressed()에서 Activity C의 Activity B를 명시 적으로 호출 할 수 있습니다.

public void onBackPressed() { 

super.onBackPressed(); 
Intent i=new Intent(this,B.class) 
startActivity(i); 

} 

마찬가지로, A.에서 B 마무리에서 시작

2

모든 그래서 그냥 뒤로 버튼을 클릭에 다음을 수행 활동입니다 - 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); 
     } 
    });