1. 退出流程
Director::getInstance()->end();->
GLViewImpl::end()-> // CCGLViewImpl-android.cpp
terminateProcessJNI()-> // Java_org_cocos2dx_lib_Cocos2dxHelper.cpp
terminateProcess() // Cocos2dxHelper.java
2. 退出代码
原始代码如下,退出时会抖动几下:
public static void terminateProcess() {
android.os.Process.killProcess(android.os.Process.myPid());
}
修改之后的代码如下,退出时不会抖动:
public static void terminateProcess() {
// The following will not jitter
Intent intent=new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sActivity.startActivity(intent);
System.exit(0);
}
以上两段代码执行之后,Android应用对应的进程在系统中都不见了。