본문 바로가기

개발/안드로이드 개발

[안드로이드] 어플 종료(?)

어플이 Background 로 전환될 경우에 어플을 초기화하거나 해야할 경우가 있었는데 구글링을 해보면
보통 ActivityManager를 사용해서  killBackgroundProcesses(packageName) 를 사용하거나 Eclare(version 8) 이전의 경우 restartPackage(packageName)를 사용한다고 하는데 뭐랄까.. 어쨋든 원하는 결과를 얻지 못했습니다.
제가 원하던 결과는 이렇습니다.

A,B  : a program Activity
D : b program Activity
-> :  화면전환

테스트 전환방향
1. A -> B -> D -> B
2. D 를 실행 후 HOME 키 후 A  -> B 홈키를 통해 최근실행한 App 실행(D) 후 back키를 눌러 다시 B로 복귀
원하던 결과 : 마지막에 B를 요청하였을때 a program Activity의 A 가 실행되거나 종료되는 것이었는데.
관련해서 테스트해본 방법으로는 위에 kill이나 restart이외에 manifest에서 Activity proferty에 android:launchMode="singleTask" 를 사용하는 방법이었는데
singleTask의 경우 Home버튼을 통한 메인화면으로 갔다가 복귀하는 경우에는 적용이 되었는데 최근실행한 App을 실행 후 복귀하는 테스트 시에는 적용이 안되었습니다.

그래서 이것저것 찾다가 다시 테스트를 해보는데
위에서 구글링한 방법이 왜그런지 원하는대로 동작을 하지 않네요.

그리고 마지막에 사용한 방법인데 정상적인 방법인지는 모르겠지만 작동이 되기는 하네요.

runningProcessor.importance = RunningAppProcessInfo.IMPORTANCE_EMPTY;

System.runFinalizersOnExit(true);

System.exit(0);
 
 
물론 Android Document 에서는 

This method is deprecated. this method is unsafe.  
안전하지 않다는것같습니다. 그리고 중지되었구요;;

Intent의 Clear_top flag로 해볼까 하다가 일단 작동은 하길래 놔두었습니다.;; 

'개발 > 안드로이드 개발' 카테고리의 다른 글

[안드로이드]sensor 정리  (0) 2012.03.23
[안드로이드] 전화수신거부  (4) 2012.01.19
Android Serializable 주의사항  (0) 2011.11.10
Android 휴대폰 전화번호 받아오기  (0) 2011.08.24
pixel 로 dip구하기  (0) 2011.08.24