가 가정 당신은 두 가지 활동 A와 B가 있습니다. 당신은 A에서 B로 이동합니다. A는 배경으로갑니다.
B가 백 스택에 놓이고 B가 포커스를 얻습니다. 뒤로 버튼을 클릭하면 활동 B가 다시 스택에서 튀어 나옵니다. 활동 A가 재개됩니다.
참고 : 한 번에 여러 작업을 백그라운드에서 수행 할 수 있습니다. 그러나 사용자가 여러 백그라운드 작업을 동시에 실행하는 경우 시스템이 메모리를 복구하기 위해 백그라운드 작업을 파괴하기 시작할 수 있으므로 작업 상태가 손실 될 수 있습니다. 활동 상태에 대해서는 다음 절을 참조하십시오.
http://developer.android.com/training/basics/activity-lifecycle/starting.html. 한 번 파괴 된 활동은 다시 만들어야합니다. 화면 방향이 바뀌면 활동이 멈추고 다시 만들어집니다.
http://developer.android.com/training/basics/activity-lifecycle/starting.html.
http://developer.android.com/guide/components/tasks-and-back-stack.html. 백 스택 작동 방식을 살펴 봐야합니다.
귀하의 경우에 마무리가 작동해야합니다 (뒤로 버튼을 눌러).
참고 : onCreate() 메서드 내에서 finish()를 호출 할 때 시스템은 onPause() 및 onStop()을 이미 호출 한 후 onDestroy()를 호출합니다.
세 번째 활동 C가 있고 활동 A로 가고 싶다고 가정 해보십시오.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
public void onBackPressed() {
Intent myIntent = new Intent(ActivityC.this, MainActivity.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);// clear back stack
startActivity(myIntent);
finish();
return;
}
정말로 테스트를 마쳤습니까? 방법? 그 방법은 – lelloman
입니다. finish()가 최선의 방법입니다. 도움이되지 않는다는 것은 무엇을 의미합니까? 어쩌면 기억력이 떨어지고 안드로이드가 액티비티를 재구성해야합니까? – Zielony
이전 활동을 계속 사용할 수 있다고 보장 할 수 없다고 생각합니다. 가비지 수집을 위해 환경 설정이나 일종의 스토리지를 사용하여 상태를 저장하는 것이 좋습니다. – Davos555