unity调用安卓原生activity,按Home键返回被杀死问题解决

当Unity调用安卓原生Activity并按Home键返回桌面后,重新进入Unity场景,Activity会被杀死。问题由Android的launchMode机制引起。将manifest中的launchMode改为"singleInstance"或移除,虽能解决部分问题,但在某些定制系统上会导致应用重启。解决方法是将Unity项目打包为Eclipse工程,创建新的UnityMain.java作为启动Activity,判断游戏Activity是否存在以防止重新启动。
摘要由CSDN通过智能技术生成

做过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: 
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值