Hallöchen Leute!
Also, kurz zur "Struktur" meines Projektes: Ich habe momentan lediglich eine Klasse, in der eine activity läuft. Habe zwar einige Objekte auch als extra klasse angelegt, aber wie gesagt gibt es im Spiel (trotz Menü, dem Spiel an sich,...) nur eine activity.
Da ich das nun ändern möchte, u.a. damit man um nur eine "stufe zurück" kommt, wenn man auf die zurück Taste drückt, stehe ich vor einem Problem. Jetzt habe ich zum Testen die selbe Klasse genommen, was auch funktioniert, bis ich die zurück Taste drücke - danach stürzt es ab. Der code, wie die Activiy gestartet wird:
ZitatAlles anzeigenif (touchX > getWidth()-50 && touchY < 50){
try{
Class newActivity = Class.forName("com.salmii.asdf.Game");
Intent intent = new Intent(Game.this, newActivity);
startActivity(intent);
}catch(ClassNotFoundException e){
e.printStackTrace();
}
}
Nun, bezüglich dem Thread, ich habe selbst noch nie einen Thread komplett eigenhändig auf die Reihe gestellt, das habe ich aus einem Tutorial, weiß nur leider überhaupt nicht mehr von welchem. (Erst dachte ich das wäre von TheNewBoston, da habe ich auch einige Basis Elemente gelernt, aber dort wurde das Thema gar nicht so genau behandelt)
Zum Thread:
ZitatAlles anzeigenclass SPIELThread extends Thread {
private SurfaceHolder _surfaceHolder;
private Aktiv _aktiv;
private boolean _run = false;
public SPIELThread(SurfaceHolder surfaceHolder, Aktiv aktiv) {
_surfaceHolder = surfaceHolder;
_aktiv = aktiv;
}
public void setRunning(boolean run) {
_run = run;
}
public SurfaceHolder SPUCKSurfaceHolder() {
return _surfaceHolder;
}
@Override
public void run() {
Canvas c;
while (_run) {
c = null;
try {
c = _surfaceHolder.lockCanvas(null);
synchronized (_surfaceHolder) {
if (_run) {
_aktiv.run();
_aktiv.onDraw(c);
}
}
}
finally {
// do this in a finally so that if an exception is thrown
// during the above, we don't leave the Surface in an
// inconsistent state
if (c != null) {
_surfaceHolder.unlockCanvasAndPost(c);
}
}
}
}
}
Meine Vermutung ist, dass dieser Thread, soweit er von etwas anderem unterbrochen wird (egal ob anruf etc. --> was auch zu einem Absturz bei mir führt), pausiert werden muss. habe auch schon einiges rumgeguckt und probiert, jedoch leider erfolglos
Daher meine Frage: Gibt es so etwas, damit man den Thread pausieren kann?
Nochmal kurz zum Aufbau meines Spieles (public class Aktiv extends SurfaceView implements Runnable, Callback): Bei den "großen" voids wie etwa run(), onDraw(), onTouchEvent() habe ich je nachdem, was geöffnet ist, eine Abfrage erstellt und somit einen künstlichen Wechsel zwischen Start - Menü und Spiel erstellt. Ich habe leider noch nie einen "richtigen" aufbau eines solchen Spieles gesehen, daher habe ich meine eigene Strategie entwickelt... Wäre nett wenn mich hierbei jemand ausbessern kann
Vielen Danke für eure Antworten!
MfG
PS: Sorry für die nicht Einrückung des Codes, als ich es versucht habe den Code mit [code] zu formatieren waren keine Leerzeilen dabei, mit einem Zitat funktioniert das aber