gpt4 book ai didi

android - 如何暂停和恢复 surfaceView 线程

转载 作者:可可西里 更新时间:2023-11-01 19:01:20 42 4
gpt4 key购买 nike

我有一个 surfaceView 设置并正在运行,但是当我恢复它时,我收到一条错误消息,指出线程已经启动。当应用程序进入后台然后返回前台时,正确的处理方式是什么?我已经修修补补并设法让应用程序在不崩溃的情况下返回......但是 surfaceView 不再绘制任何东西。我的代码:

    @Override
public void surfaceCreated(SurfaceHolder holder) {
Log.e("sys","surfaceCreated was called.");
if(systemState==BACKGROUND){
thread.setRunning(true);

}
else {
thread.setRunning(true);
thread.start();
Log.e("sys","started thread");
systemState=READY;
}



}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
Log.e("sys","surfaceDestroyed was called.");
thread.setRunning(false);
systemState=BACKGROUND;
}

最佳答案

简单的解决方案是简单地杀死并重新启动线程。创建方法 resume() - 创建线程对象并启动它 - 和 pause() - 终止线程(参见 Lunarlander 示例) - 在您的 SurfaceView 类中,并从 surfaceCreated 和 surfaceDestroyed 调用它们以启动和停止线程。

现在在运行 SurfaceView 的 Activity 中,您还需要从 Activity(或 fragment )的 onResume() 和 onPause() 调用 SurfaceView 中的 resume() 和 pause() 方法。这不是一个优雅的解决方案,但它会起作用。

关于android - 如何暂停和恢复 surfaceView 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3527621/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com