Buenas, tengo un problema que me está volviendo loco y a ver si podeis echarme una mano.
Estoy desarrollando un juego android y os cuento lo que he hecho.
Tengo una clase activity, llamada Main.java de la siguiente manera:
----Main.java ---
public class Main extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
---> GameView game=new GameView(this);
setContentView(game);
}
.....
}
Como veis en dicha activity no uso el layout XML sino un SurfaceView (clase GameView)
----GameView.java---
public class GameView extends SurfaceView{
....
}
Y luego tengo una clase GameLoopThread , que es de tipo hilo que es el que refresca el dibujo en la pantalla.
---GameLoopThread----
public class GameLoopThread extends Thread {
...
}
La cuestión es que el juego me funciona y hace lo que tiene que hacer, pero ocurre que cuando el personaje coge una llave cuya colisión detecto en la clase GameView, quiero iniciar una nueva activity para mostrar un menú, por lo que en esta clase GameView cuando lo detecta la llave hago los siguiente:
--dentro la clase GameView donde detecto que he cogido la llave---
gameLoopThread.setRunning(false); //paro el hilo que refresca la pantalla del juego
Intent i=new Intent(getContext(),DisplayMessageActivity.class); //donde DisplayMessageActivity es la nueva actividad
getContext().startActivity(i); //la inicio
Pero cuando pruebo el juego y cojo la llave se cierra la aplicación

((
Alguien me podría decir que hago mal o alguna idea de hacerlo de otra manera??
Muchas gracias y saludos