본문 바로가기

나의 플랫폼/안드로이드

[ Android ] 어플리케이션 꺠끗하게 종료하는 법.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


// 어플리케이션과 모든 프로세스를 종료하는 함수

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등 같은~~ ㅋ

위와 같이 해주면 모든 프로세스가 종료가 되므로, 다른 프로그램에 피해를 주지 않겠죠.^^
참고하세요. 

추신: 구글링으로 찾은 함수인데.. 또 출처 주소를 잊어버렸습니다. 죄송합니다.