// 어플리케이션과 모든 프로세스를 종료하는 함수
public void close()
{
finish();
int nSDKVersion = Integer.parseInt(Build.VERSION.SDK);
if(nSDKVersion < 8) //2.1이하
{
ActivityManager actMng = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
actMng.restartPackage(getPackageName());
}
else
{
new Thread(new Runnable() {
public void run() {
ActivityManager actMng = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
String strProcessName = getApplicationInfo().processName;
while(true)
{
List<RunningAppProcessInfo> list = actMng.getRunningAppProcesses();
for(RunningAppProcessInfo rap : list)
{
if(rap.processName.equals(strProcessName))
{
if(rap.importance >= RunningAppProcessInfo.IMPORTANCE_BACKGROUND)
actMng.restartPackage(getPackageName());
Thread.yield();
break;
}
}
}
}
}, "Process Killer").start();
}
}
어플리케이션을 종료 시킬 때 대부분 finish를 사용하는 데요.
위 소스는 종료 시 모든 프로세스를 제거 시켜주는 겁니다.
어플리케이션에서 생성 한 서비스등은 종료 해주지 않으면,
남아있게 되더라구요.
AudioManager등 같은~~ ㅋ
위와 같이 해주면 모든 프로세스가 종료가 되므로, 다른 프로그램에 피해를 주지 않겠죠.^^
참고하세요.
추신: 구글링으로 찾은 함수인데.. 또 출처 주소를 잊어버렸습니다. 죄송합니다.
'나의 플랫폼 > 안드로이드' 카테고리의 다른 글
[ Android ] 어플리케이션 내에 URI (0) | 2011.07.08 |
---|---|
[ Android ] not enough memory for AudioTrack (2) | 2011.07.07 |
[ Android ] SoundPool 시작 및 정지 (0) | 2011.07.07 |
[ Android : AndEngine ] 텍스쳐 깨짐 현상. (3) | 2011.07.05 |
[ Android ] 어플리케이션 종료 (0) | 2011.07.05 |