我正在使用表面视图中的可运行线程来播放动画。当我第一次运行应用程序时,一切正常,动画播放正常。当我按回/ home按钮并重新打开应用程序时,我得到一个没有动画的黑屏,但是可运行的线程在我使用Log cat条目确认的背景上工作。
此外,我正在覆盖后退按钮按下事件,并在后退按钮按下事件中调用finish()。
任何人都可以帮我解释为什么恢复申请时没有调用表面创建的方法?
注意:当我使用
时android.os.Process.killProcess(android.os.Process.myPid());
在后退按钮事件而不是finish()方法中,应用程序在onresume事件中正常工作。
先谢谢,蒂姆
答案 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
}
}
希望这可以帮到你。