안녕하세요


안드로이드에서 앱을 종료하면 이전에 메모리에 남아 있던 내용때문에 


오작동 하는경우가 있을겁니다. 


특히 NDK 환경에서 네이티브로 개발한 경우.. 더더욱 문제점이 심각한데요..


예를들어 cocos2dx로 게임을 개발하였는데.. 디바이스 back key를 누르면 


acitvity finish()가 호출되고 onDestroy()에 의해서 java -> c 를 호출하고


navtive 영역에서 onDestroy에 대한 동작을 받아주는 경우로 만들어야 하는데


동작간에 실수가 있을경우 문제점이 있을 수 있습니다. 


여러가지 고민중 프로세스 종료에 대해서 알아봤는데요..


System.exit(0); 으로는 해결 할 수 없고 


<uses-permission android:name="android.permission.RESTART_PACKAGES" />


Process.killProcess(Process.myPid());


으로 자신의 프로세스를 강제종료 시켜서 해결했습니다.  

(adb shell 에서 ps 명령어로 확인해 보시길)


물론 사이드이펙트도 발생할 수 있습니다. 



http://stackoverflow.com/questions/11035328/why-calling-process-killprocessprocess-mypid-is-a-bad-idea