2

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

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

任何人都可以帮我解决为什么在我恢复应用程序时没有调用surfacecreated方法吗?

注意:当我使用

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

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

提前致谢, 蒂姆

4

1 回答 1

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
        }  

    } 

希望这可以帮到你。

于 2012-07-26T08:25:20.553 回答