this.removeAllViews();
}
this.kill();
f();
}
quit()方法中倒数第二行this.kill();
protected void kill() {
Process.killProcess(Process.myPid());
}
该方法只有一行代码:就是杀死当前进程
这就是我写这篇博客的原因,Unity和Android不一样:
Unity只有一个界面,它改变场景不需要重新创建界面只需要把要显示的场景在原来的界面中画出来而已;Android中一个Activity就是一个界面,一个程序中可以有很多Activity。
那么问题来了:从Android中的一个Activity(比如:MainActivity)跳转到Unity场景中(一般默认对应的是UnityPlayerActivity),之后从UnityPlayerActivity退出来返回到MainActivity的时候,因为调用了UnityPlayer的quit()方法而把当前的进程杀死了,之前的MainActivity已经不存在了,你会发现页面闪了一下还是退到MainActivity页面了,殊不知这个MainActivity是新创建的。
解决思路:
调用quit方法退出,但不能让kill()方法执行。
解决方法:
定义一个类MyUnityPlayer继承UnityPlayer并重写其kill()方法
public class MyUnityPlayer extends UnityPlayer {
public MyUnityPlayer(ContextWrapper contextWrapper) {
su