在SurfaceHolder.Callback.surfaceCreated()函数被触发以后,再调用SurfaceHolder.LockCanvas()为什么还会失败?  这个问题表现在,AP第一次启动正常,SurfaceHolder.lockCanvas()返回有效的Canvas。但是点击Back退出AP,再次进入AP,SurfaceHolder.lockCanvas()却会失败。返回的都是null。
        是不是在AP退出的时候,SurfaceView或者SurfaceHolder需要进行释放操作呢?

解决方案 »

  1.   

    你点HOME再进来看看是不是就不是这种情况呢,因为BACK的操作通常要释放掉一切资源,要重新申请。 Android原生系统这么处理,不知道你的app怎么写怎么处理的
      

  2.   

        Back是会释放资源的,但是,AP重新启动,activity重新展开的时候,难道surface的资源不会重新申请么?
      

  3.   

    你注册了嘛? 
    callback()这个函数调用了吗?
      

  4.   

         SurfaceHolder.addCallback()?用了,我实在函数surfaceCreated(SurfaceHolder holder)被触发以后,才调用lockCanvas()的
      

  5.   

    一定要在oncreate()方法里启动ondraw()线程
      

  6.   

    把代码贴出来看看。  邮箱也可以:[email protected]
      

  7.   

    整体代码贴起来有点麻烦,算了,我放弃。
    因为这个BUG,出现在我一个写着用来熟悉SurfaceView用法的项目中。等正式项目遇到这个问题再来解决它吧