본문 바로가기

IT_Story/안드로이드

[안드로이드] 종료버튼만들기

안드로이드 어플을 만들다가 종료버튼이 필요할까 안할까 라는 생각을 해보았다.
대부분의 어플들은 종료버튼이 없다.
왜일까?                                                                                                                
 

이유는,
1. 홈버튼을 눌러라.
홈버튼을 누르면 홈으로 가게 되지만, background에 남아있게 된다.
메모리를 삭제하려면 사용자가 직접 설정에 들어가서 하는 방법이 있다.

2. back버튼을 눌러라.
back버튼은 메인 activity에서 눌러야 종료가 된다.
즉, activity가 여러개일 경우 계속 눌러야 종료가 되기때문에 번거롭고 귀찮다.

그런데 이걸 아나?
안드로이드는 가비지 컬렉터라고 메모리를 관리해주는 관리자가 존재한다.
안드로이드 앱에서 더이상 사용안하는 자원을 수집해서 메모리를 확보해주는 역활을 한다.
(가비지 컬렉터는 다음기회에 자세히...)

사용자에게 편하게 하기 위해 종료버튼을 만들면 어떤게 있을까?

1. back버튼을 눌러 메시지 박스를 뛰어 종료하는 것.
2. back버튼 2번 눌러 종료하는 것. (ex. 네이버 app)
3. 메뉴버튼을 눌러 메뉴에서 종료버튼을 눌러 종료하는 것.
4. activity에 있는 종료버튼을 눌러 종료하는 것. (ex. 신한은행, 동양금융 app)

가장 흔한 1번째 back버튼을 눌러 종료하는 소스를 보자.


a.restartPackage(getPackageName());은 완전한 프로세스상에 메모리를 해제하는 것이다.
이 method를 사용을 하기 위해서는
AndroidManifest.xml에 <uses-permission android:name="android.permission.RESTART_PACKAGES"/>를 추가해야된다.

이 소스를 가지고 응용을하면 내가 나열한 모든 곳에 사용을 할 수 있다.

나는 4번을 이용해서 어플을 만들었지만, 위의 소스를 이용하였다(이용보단 똑같다 ㅎㅎ)