做过unity与安卓原生交互的同学应该都知道,我们在unity里面调用安卓原生的activity,按Home键返回到桌面,之后重新进入unity场景,安卓原生的activity就会被杀掉。
其实这个问题做过安卓的人都知道,这个关乎到安卓对于activity的运行机制问题,这些问题这里不想再多说了,网上有太多关于launchMode的解答例如:
http://blog.csdn.net/liuhe688/article/details/6754323/
如果对activity 的四种launchMode:1.standard、2.singleTop、3.singleTask、4.singleInstance不了解 可以先去查查资料。
因为unity默认程序打包出来的Androidmanifest配置android:launchMode=”singleTask”,一看到这里,做安卓开发的同学基本就知道了,哦原来是这里搞的鬼,所以只要将launchMode=”singleTask”改成标准的launchMode=”singleInstance”就可以了,因为默认就是标准的所以可以直接把这一行直接去掉。
但是你以为这样就可以了么,众所周知,安卓的手机何其之多,所以就会出现各种的定制系统,出现各种奇奇怪怪的问题也是再所难免,对于程序员来说,有bug实在是太正常不过了,我们最不怕的就是bug,只要给出相应的机子,重现出相应的bug,对我们来说就不是bug 了,而是一个丢在臭水沟的西瓜皮,烂掉只是时间的问题而已。
好了说重点,就是在将launchMode改成标准的之后在很多手机会出现这样一种情况安装完应用之后直接点击打开按钮进入游戏之后按HOME键退到桌面,再次点击应用图标进入游戏就会出现重新开始应用(其实这里是是因为重新创建主activity,才会看到重启游戏),在某些安卓发布平台就会因为这个问题而导致审核不通过,然后发给你的日志报错信息只能看到:
07-21 14:17:15.714 632-632/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-21 14:17:15.714 632-632/? A/DEBUG: Build fingerprint: 'Xiaomi/land/land:6.0.1/MMB29M/V8.2.3.0.MALCNDL:user/release-keys'
07-21 14:17:15.714 632-632/? A/DEBUG: Revision: