펌 : http://muzesong.tistory.com/38

 

안드로이드를 하다보면 액티비티가 계속 쌓이는 경우가 있다. 이 경우는 시스템 적으로 아무래도

부담이되고, 물론 눈에 보일정도로 그런다기보다 계속 그렇게 쌓다보면 뒤로가기를 한참을 눌러야

밖으로 빠져나가게 되는 불상사가 생긴다.

이럴 경우 현재 액티비티나 현재액티비티가 아닌 다른 액티비티를 종료시켜서 액티비티를 줄이는

방법이있는데, 우선 현재 액티비티를 죽이는 방법은 간단하다.

어떠한 작업을 완료하고 액티비티를 종료하기를 원한다면 작업 완료 다음줄에

finish();


이것만 적어주면 된다. 이렇게 되면 저 함수를 만나는 즉시 현재 액티비티가 종료된다. 

하지만 A 액티비티에서 B액티비티를 갔는데 A액티비티를 죽이고 싶다면 이렇게 하면된다.

우선 A 클래스에 

public static Activity AActivity;


라고 스테틱으로 액티비티를 선언한다. 그리고 onCreate 안에 

AActivity = Aclass.this;


이렇게, 액티비티 객체에 현재 클래스를 담아준다. 그럼 이제 B클래스로가서

Aclass aActivity = (Aclass)Aclass.AActivity;


이렇게 aActivity 라는 객체를 만드는데 그 객체는 Aclass의 스테틱변수인 AActivity를

넣어 둔다는 의미이다 보면 복잡해 보이는데 글로 쓰면 이렇다 .

A클래스  A클래스객체  =  (A클래스)A클래스.A클래스에서 스태틱 액티비티 변수


이정도 순서이다. 헷갈리기 쉬울 것 같다. 

그 다음 아래에 이렇게 만든 객체를 피니시하면된다

aActivity.finish();


이렇게 써주면 B클래스에서 아까 앞에 A액티비티를 종료 시킬 수 있다.

+ Recent posts