现在面临一个问题,不知道怎么搞了。
GlSurfaceView所占的native内存(Android studio 3.0 profiler里的),在Activity关闭之后,没有减少。
因为关闭的时候有deletebuffer的原因,再次打开页面所占内存倒是不增加了,但是关闭页面内存没有减少啊。
之前有考虑过纹理是不是没有删除,所以用了gldeletebuffer删除,
纹理倒是删除了,因为新生成的纹理从删除掉的第一个纹理重新分配的,内存也不会增加,
可是关闭activity也调用了这个代码,但是也不删除native占的内存。
之后又有看到GLsurfaceview 需要掉用 onpause,但是也不释放啊
XD怎么搞啊,去下了一个demo情况貌似和我的一样的。有人知道怎么解决吗
Activity有模式设置,所谓退出和关闭不是一回事,windows窗口管理则没有这种栈模式。
参考:http://blog.csdn.net/robertcpp/article/details/51582725
看了一下, A打开了B ,然后B页面浏览完了准备结束了 执行了 pause stop finish,返回了A,但是B的GLSurfaceView所申请占用的native内存没有释放啊,B就一个GLSurfaceView,和mediacodec, java代码的内存是释放了。
而且文章里面:我们平时直接创建的Activity都是这种模式的Activity,这种模式的Activity的特点是:只要你创建了Activity实例,一旦激活该Activity,则会向任务栈中加入新创建的实例,退出Activity则会在任务栈中销毁该实例。
这个我得应该是这个默认的。所以应该是退出了就退出了