由于本身对java一点也不了解,所以我不知道这种做法是否会造成什么问题,但至少实现了重启的功能。
在AppActivity.java中加入如下代码:
//自动启动 public static void restartApp() { AppActivity.sContext.restart(); } public void restart() { finish(); Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); android.os.Process.killProcess(android.os.Process.myPid()); }
另外sContext需要自己手动添加,仿照Cocos2dxActivity添加即可。
JniMethodInfo method; bool b = cocos2d::JniHelper::getStaticMethodInfo(method,"org.cocos2dx.cpp.AppActivity","restartAPP","()V"); if(b) { method.env->CallStaticVoidMethod(method.classID,method.methodID); method.env->DeleteLocalRef(method.classID); }需要包括头文件:
#include "platform/android/jni/JniHelper.h"