M0286_Libro Curso
2: Avanzado en Android
En primer lugar, tenemos que crear una variable hilo que sostenga nuestro hilo. Dentro del constructor instanciamos el hilo. En el surfaceCreated() comprobamos si el hilo está vivo. Si está vivo, no hacemos nada. Si no lo está, creamos una nueva instancia e iniciamos de nuevo el hilo. No podemos volver a utilizar el antiguo objeto hilo, porque en este punto no sabemos a ciencia cierta si el hilo se está ejecutando aún y una instancia de hilo no se puede iniciar más de una vez. El método surfaceDestroyed() es llamado cuando se destruye la vista. Una razón puede ser que la actividad esté corriendo en un segundo plano, ya sea porque haya comenzado otra Activity o simplemente se haya presionado el botón “ Atrás ” o el de “ Home ”. Hay que asegurarse de que el hilo está terminando para detener el bucle. Para ello debemos establecer la variable mRun con el método setRunning() a falso. public void surfaceDestroyed(SurfaceHolder holder) { if (mThread.isAlive()) { mThread.setRunning(false); } } La pantalla muestra el mismo resultado que lo realizado en capítulo anterior, pero ahora realmente hemos usado gráficos 2D.
Figura 2.3. Resultado mostrado en el emulador.
La aplicación completa “SeasGrafico2D” se puede descargar desde la plataforma de estudio.
93
Made with FlippingBook - Online catalogs