对于Android Surfaceview,onResume不会调用Surfacecreated方法

时间:2012-07-25 11:03:50

标签: android surfaceview android-animation

我正在使用表面视图中的可运行线程来播放动画。当我第一次运行应用程序时,一切正常,动画播放正常。当我按回/ home按钮并重新打开应用程序时,我得到一个没有动画的黑屏,但是可运行的线程在我使用Log cat条目确认的背景上工作。

此外,我正在覆盖后退按钮按下事件,并在后退按钮按下事件中调用finish()。

任何人都可以帮我解释为什么恢复申请时没有调用表面创建的方法?

注意:当我使用

android.os.Process.killProcess(android.os.Process.myPid());

在后退按钮事件而不是finish()方法中,应用程序在onresume事件中正常工作。

先谢谢,蒂姆

1 个答案:

答案 0 :(得分:0)

我认为,你必须扩展SurfaceView类并监听surfaceChanged方法。并在方法中再次绘制。 代码:

class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback{  
        SurfaceHolder holder;
        public MySurfaceView(Context context) {  
            super(context); 
            holder = this.getHolder();
            holder.addCallback(this); 
        }  
        public void surfaceChanged(SurfaceHolder holder, int format, int width,  
                int height) {  
            //when surfaceChanged,i think you must make your view draw one time.

        }   
        public void surfaceCreated(SurfaceHolder holder) {  
            //surfaceCreated
        }    
        public void surfaceDestroyed(SurfaceHolder holder) {  
            //surfaceDestroyed
        }  

    } 

希望这可以帮到你。