안드로이드 액티비티 종료
조회수 20675회
Intro 화면에서 로그인 후 메인으로 넘어가고있습니다. A(인트로) B(메인)
A 액티비티
Intent intent = new Intent(MyIntro.this, MainActivity.class);
startActivity(intent);
finish();
로그인이 완료되면 이렇게 인텐트를 이용하여 메인으로 넘어갑니다.
로그를 찍어보면 A.OnPause() -> B.OnCreate() -> A.OnStop() - > A.OnDestroy()
이순서로 A액티비티가 종료됩니다. 처음 앱실행은 문제가 없습니다.
하지만 메인엑티비티를 종료하고 (B.OnDestroy() 까지 로그 찍히는거보고)
다시 앱 실행 하였을때는 A->B로 넘어갈때 A가 OnStop까지만 가고 OnDestroy가 안됩니다.
그래서 메인엑티비가 종료되면 A액티비가 안보여야하는데 다시 보이게 됩니다.
2~3번 정도는 A가 Destroy() 되어 잘 종료되지만 그 후로 반복하면 계속 A가 남아있습니다.
앱이 시작되고 A액티비티는 한번지나가면 다시 사용할 일이 없기에 정상적으로 종료되어야 합니다. 어떻게 해결해야할까요 ?
A액티비티가 잘 종료되었을떄와 잘 종료 되지 않았을때 입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
"MyIntro"에서 "MainActivity"로 화면이 바뀐 이후에 "MyIntro"를 더 이상 사용하지 않는다면 startActivity() 아래에 finish()를 호출하는 방법보다 아래 방법이 더 안전해 보입니다.
a. Pause() 함수에서 finish() 호출하기
@Override public void onPause() { super.onPause(); // Remove the activity when its off the screen finish(); }
b. AndroidManifest.xml.의 android:noHistory 속성을 "true"로 설정하기
<activity ... android:noHistory="true"> </activity>
아래 사이트 참고하세요
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력