2012-04-02 3 views
1

a1을 a2로 이동 한 다음 a2를 a3으로 이동합니다. 이제 에뮬레이터에서 뒤로 버튼을 누르면 활동 a2를 끝내지 않고 활동 a1에 가고 싶습니다. 어떻게해야합니까? 안내하십시오. 사전활동주기 문제

+0

으로 다시 시작()를 오버라이드 (override)하는 수

당신 http://stackoverflow.com/questions/7790248/how-to-finish-activity-from-another-activity –

답변

7

예는 모든 활동에 이동할 수 있습니다 이것에 의하여 버튼

public void onBackPressed() { 

Intent start = new Intent(currentclassname.this,which activity u want.class); 
    startActivity(start); 
    finishActivity(0); 
} 

을 것을 다시 정의 할 수 있습니다. 매우 간단하고 쉬운 방법입니다.

3

에서 me..Thanks은 A3 활동의 다시 키 이벤트에서 이것을 시도 :

Intent intent = new Intent(this,A1.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
+0

그는 활동 a2가 끝나지 않기를 원합니다. 위의 솔루션 (FLAG_ACTIVITY_CLEAR_TOP)은 스택에서 a2를 제거하지 않습니다. 틀린 경우에 나를 정정하십시오. – Deva

+0

@Deva 그럼 SINGLE_TOP을 사용해야한다고 생각합니다. –

0

활동이 죽을 필요가 없습니다. onPause() 및 onResume() 메서드를 구현하면 활동 상태를 유지하고 복원 할 수 있습니다.

http://developer.android.com/reference/android/app/Activity.html

라이프 사이클도 도움이됩니다. 활동을 생성하고 이동하는 방법을 제어하려면 매니페스트 활동 속성을 조정하거나 호출 의도에 플래그를 추가 할 수 있습니다.

1

쓰기 (A3)에서이 점은

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    Intent intent=new Intent(getApplicationContext(),a1.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 

} 
0

AndroidManifest.xml 파일에서 이것을 구현할 수 있습니다. 원하는대로 android : noHistory = "true"속성을 추가하기 만하면됩니다. A2 활동에

0

당신이 도움이 될 수 아래 링크를 주심을하시기 바랍니다 아래 ::

@Override 
protected void onRestart() { 
// TODO Auto-generated method stub 
super.onRestart(); 
startActivity(new Intent(getApplicationContext(),a1.class)); 
}