当前位置: 代码迷 >> Android >> surfaceDestroyed什么时候执行?该如何处理
  详细解决方案

surfaceDestroyed什么时候执行?该如何处理

热度:66   发布时间:2016-04-28 07:01:16.0
surfaceDestroyed什么时候执行?
网上说:
“ surfaceDestroyed(SurfaceHolder holder):当Surface被摧毁前会调用该函数,该函数被调用后就不能继续使用Surface了,一般在该函数中来清理使用的资源。”

那什么时候surface被摧毁呢?

是不是屏幕发生变化的时候,如执行了setContent(view),或者点击了home键?

但点击home键,并未执行surfaceDestroyed。

surface被摧毁,是不是surfaceView的对象被置为null?

一个对象被置为null,其内部的属性所占的资源,是不是都被系统自动回收?静态资源呢?

问题较多,奖高分。。。

------解决方案--------------------
我觉得这个基本类似析构函数。 保证对象内使用的资源在对象消亡的时候都被回收。
类的静态成员不会被回收啊。
------解决方案--------------------
Home键默认是stop前台的Activity即状态为onStop而不是Destroy,若再次启动它,则是从OnResume开始的,即会保持上次Activity的状态。 这也是为了快速再次开启这个应用的一种高效保护。但是长时间没有响应的话,系统会自动回收其资源。

不同于back:使Activity的状态为Destroy状态,再次启动该Activity是从onCreate开始的。
------解决方案--------------------
接分。呵呵
个人以为是只要SurfaceView不可见就会被执行Destroy
------解决方案--------------------
你可以自己编写代码来测试。