【问题标题】:Flaw in the Lunar Lander example (IllegalThreadStateException)Lunar Lander 示例中的缺陷 (IllegalThreadStateException)
【发布时间】:2011-01-16 21:29:10
【问题描述】:

我一直在玩月球着陆器示例,但在尝试实现关于屏幕时遇到了问题。我将其中一个菜单项(在 onCreateOptionsMenu 中)更改为“关于”选项。选择此选项后,将启动一个新的 Activity 并显示一个关于屏幕。

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

这非常有效,并且焦点移动到了一个新的 Activity。但是,当我按下手机返回游戏时,程序崩溃了。我收到此错误:

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]  

谁能帮我弄清楚发生了什么?每当我尝试从其他东西(无论是从偏好活动、帮助活动还是从主屏幕)返回游戏屏幕时,我都会遇到同样的问题。谢谢

【问题讨论】:

标签: android android-activity preferences surfaceview


【解决方案1】:

小说给出的链接让我找到了答案。问题不在我的代码中,而是由于 Lunar Lander 示例中的一个缺陷(它没有正确处理其线程)。

对于任何寻求不使用 Lunar Lander 有缺陷的框架的稳定游戏循环的人来说,我发现这个示例非常有效:http://blorb.tumblr.com/post/236799414/simple-java-android-game-loop

感谢您的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2014-08-08
    • 2010-10-15
    • 1970-01-01
    • 2012-03-18
    相关资源
    最近更新 更多