마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

새로운 액티비티를 실행 할 때 기존에 실행되고 있던 Activity들을 종료 하는 방법이 있을 까요?

0 추천
A -> A:finish() -> B -> B:finish() -> C -> D -> A

위에 A,B,C,D를 모두 액티비티로 보구요. 위처럼 진행 했을 때

현재 C,D 가 화면에 실행 되어 있는 상태에서 A를 실행 할때 C와 D 를 종료 할 수 있을 까요?

Push Notification왔을 때 선택 했을 때 이동 시켜 줄려고 하는데. A가 Splash 화면이거든요.

그래서 이전에 있는 액티비티들이 살아 있어서 문제가 되거든요..

실행 되는 액티비티들을 없애고 다시 실행 하려고 하는데.  이게 잘 않되네요...

아니면 앱 자체를 아예 종료 시켜 버리고 다시 실행 하는게 낳을까요?

 

추가로 푸시 왔을 때 특정 화면으로 이동 하려고 하는데 어떤 방법이 좋을 까요?
디너 (730 포인트) 님이 2014년 8월 13일 질문

1개의 답변

0 추천
액티비티를 스태틱으로 가지고있으면 외부에서 종료도 가능합니다.

public static Activity mActivity = null;

을 선언해주고 onCreate에 mActivity = this; 를 해주시면

외부에서 MyClass.mActivity.finish(); 로 종료할수있습니다.
기초개발자 (24,060 포인트) 님이 2014년 8월 13일 답변
Context와 연관된 것을 static 변수에 저장하는 것은 매우 안좋은 방법입니다.
무효한 Activity를 참조하게 되거나 해당 Activity와 관련 하여 할당된 메모리가 해제되지 않게 될 수 있습니다.
...