首页新闻找找看学习计划

GLsurfaceView 内存回收

0
悬赏园豆:30 [待解决问题]

现在面临一个问题,不知道怎么搞了。

GlSurfaceView所占的native内存(Android studio 3.0 profiler里的),在Activity关闭之后,没有减少。

因为关闭的时候有deletebuffer的原因,再次打开页面所占内存倒是不增加了,但是关闭页面内存没有减少啊。

之前有考虑过纹理是不是没有删除,所以用了gldeletebuffer删除,

纹理倒是删除了,因为新生成的纹理从删除掉的第一个纹理重新分配的,内存也不会增加,

可是关闭activity也调用了这个代码,但是也不删除native占的内存。

 

之后又有看到GLsurfaceview 需要掉用 onpause,但是也不释放啊

XD怎么搞啊,去下了一个demo情况貌似和我的一样的。有人知道怎么解决吗

起始丶光影的主页 起始丶光影 | 初学一级 | 园豆:178
提问于:2018-01-30 18:00
< >
分享
所有回答(1)
0

Activity有模式设置,所谓退出和关闭不是一回事,windows窗口管理则没有这种栈模式。

参考:http://blog.csdn.net/robertcpp/article/details/51582725

花飘水流兮 | 园豆:10601 (专家六级) | 2018-01-30 21:07

看了一下, A打开了B  ,然后B页面浏览完了准备结束了  执行了  pause  stop  finish,返回了A,但是B的GLSurfaceView所申请占用的native内存没有释放啊,B就一个GLSurfaceView,和mediacodec,  java代码的内存是释放了。

而且文章里面:我们平时直接创建的Activity都是这种模式的Activity,这种模式的Activity的特点是:只要你创建了Activity实例,一旦激活该Activity,则会向任务栈中加入新创建的实例,退出Activity则会在任务栈中销毁该实例。

这个我得应该是这个默认的。所以应该是退出了就退出了

支持(0) 反对(0) 起始丶光影 | 园豆:178 (初学一级) | 2018-01-31 14:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册