Android工程嵌Unity模块内存常驻方案(Unity模块挂起不销毁)

        在Android Studio工程中嵌套Unity导出的模块,官方默认就是使用singleTask的方式,每次启用Unity模块时都会另外开辟一个新的进程,当退出unity模块时,会把进程给finish掉(参考一这篇https://blog.csdn.net/ssssssilver/article/details/108326480

       但由于业务要求不一样,可能需要在返回Andorid主进程时,只是挂起unity模块并不销毁,这样下一次再进入时就不需要重复初始化操作,而且也可以访问上一次加载的内存。这个功能需求涉及到android的singleInstance的特性,具体操作如下所示。

1.在主工程的AndroiManifest.xml中设置unity模块的运行模式,添加一行android:launchMode="singleInstance"

这样就可以把unity模块设置成单例模式

2.当需要退出unity模块回到列表时,需要调用方法把当前的unity进程挂起

image.png

3.同时要注意的是,因为unity模块已经单例化了,第一次的启用会执行OnCreate回调,之后再进入AR模块时不会再触发OnCreate回调,可以在onResume或者onNewIntent中执行加载场景操作。

image.png

4.因为unity模块设置成了单例模式,所以当启用过AR模块后都会一直存在内存中,会占用一定的内存空间

如果不需要unity常驻内存,可以取消单例的设置,并且在退出unity模块时,把moveTaskToBack(true)换成finish()。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值