Tengo una configuración de SurfaceView y en ejecución, pero cuando lo reanudo me sale un error de que el subproceso ya se ha iniciado. ¿Cuál es la forma correcta de manejar cuando la aplicación pasa al segundo plano y luego vuelve al primer plano? He estado haciendo pequeños cambios y logré que la aplicación vuelva sin fallar ... pero SurfaceView ya no dibuja anthing. Mi código:cómo pausar y reanudar un subproceso de vista de superficie
@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;
}
Me encanta la idea de Ur, he estado trabajando para encontrar algo fácil. Porque "surfaceDestroyed" no se llama cada vez, pero "onPause" sí lo es. Al igual que presionar el botón de "encendido", regrese. Así que creo que tu elección es realmente buena. –