2011-01-16 11 views
2

Ich habe mit dem Mondlandefähre Beispiel gespielt und habe ein Problem beim Versuch, eine über Bildschirm zu implementieren. Ich habe einen der Menüpunkte (in onCreateOptionsMenu) in eine "about" -Option geändert. Wenn diese Option ausgewählt ist, wird eine neue Aktivität gestartet und ein About-Bildschirm angezeigt.Fehler in der Lunar Lander Beispiel (IllegalThreadStateException)

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case MENU_ABOUT: 
      startActivity(new Intent(this, About.class)); 
      return true; 
      //Other cases 
    } 
    return false; 
} 

Dies funktioniert perfekt und der Fokus bewegt sich zu einer neuen Aktivität. Wenn ich jedoch auf das Telefon zurück drücke, um zum Spiel zurückzukehren, stürzt das Programm ab. Ich diesen Fehler:

Thread [<3> main] (Suspended (exception IllegalThreadStateException)) 
LunarView(SurfaceView).updateWindow(boolean) line: 465 
LunarView(SurfaceView).onWindowVisibilityChanged(int) line: 189 
LunarView(View).dispatchWindowVisibilityChanged(int) line: 3782 
FrameLayout(ViewGroup).dispatchWindowVisibilityChanged(int) line: 704 
FrameLayout(ViewGroup).dispatchWindowVisibilityChanged(int) line: 704 
PhoneWindow$DecorView(ViewGroup).dispatchWindowVisibilityChanged(int) line: 704 
ViewRoot.performTraversals() line: 710 
ViewRoot.handleMessage(Message) line: 1650 
ViewRoot(Handler).dispatchMessage(Message) line: 99 
Looper.loop() line: 123 
ActivityThread.main(String[]) line: 4595  
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
Method.invoke(Object, Object...) line: 521 
ZygoteInit$MethodAndArgsCaller.run() line: 860 
ZygoteInit.main(String[]) line: 618 
NativeStart.main(String[]) line: not available [native method] 

Kann jemand mir helfen herauszufinden, was los ist? Ich stoße immer dann auf das gleiche Problem, wenn ich versuche, von etwas anderem zum Spielbildschirm zurückzukehren (sei es von einer Vorzugsaktivität, einer Hilfeaktivität oder vom Startbildschirm aus). Danke

+0

http://stackoverflow.com/fragen/683136/android-illegalreadstateexception-in-lunarlander – fiction

+0

Ahh, so ist es ein Fehler in der Lunar Lander Beispiel. Dieser Link hat mich zu einer Lösung gebracht. Danke vielmals – Cbas

Antwort

2

Die Verbindung, die Fiktion gab, führte mich zur Antwort. Das Problem war nicht in meinem Code, es lag an einem Fehler im Lunar Lander-Beispiel (es behandelt seinen Thread nicht richtig).

Für alle, für eine stabile Spielschleife suchen, der nicht sehr gut verwenden Lunar Landers fehlerhaft Rahmen, fand ich dieses Beispiel funktioniert: http://blorb.tumblr.com/post/236799414/simple-java-android-game-loop

Danke für die Hilfe

Verwandte Themen