Android,在哪里放置我的UI更新和我的游戏循环

时间:2011-05-11 16:50:10

标签: java android user-interface android-asynctask

所以我是Android的新手,并且在理解线程/ Android UI更新等方面遇到了一些困难。我有一些代码用于为AP计算机科学最终项目制作的简单游戏引擎,我一直试图将其变成Android应用程序。来自java世界,我不习惯线程化或担心计算发生的时间或地点,所以我在玩游戏时遇到了一些困难。在启动画面和主菜单之后,我进行了设置,以便开始一个名为“Play”的活动。在这个活动中,我发现我可以初始化我的游戏引擎对象(从类传递到类),创建一个我创建的对象来创建一个AsyncTask(下面链接的代码中的“GuiThreader”)但是一旦我投入“播放”中的一些代码可以做更多的事情(比如初始化按钮,或者启动线程助手类)我得到一个“活动已经意外停止”错误意味着我做错了什么。我一直在看很多Android示例代码,但它对我来说没什么意义。所以我想在所有背景下我的更大问题是我如何才能使这段代码有效?更具体地说,我应该在游戏结束时检查我的循环,以及如何在“主”穿线器之外更新我的按钮颜色以防止其崩溃。

这是我的代码:

“播放”活动(代码行注释我正在测试): http://pastebin.com/K5kFsMvG

“GuiThreader”用于使游戏计算成为AsyncTask:http://pastebin.com/306eUYfq

“GUIdriver”用于调用更新按钮颜色的类:http://pastebin.com/RANZBH38

“ButtonColorUpdate”保存按钮的值并更新其颜色:http://pastebin.com/qN2fw1RC

如果您还需要其他任何评论,我会提出来。在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

首先阅读this。然后我建议查看Replica Island中的代码。你可以从研究这个项目的代码中学到很多东西。如果您想从单独的线程与GUI“stuff”进行交互,则Handler(请参阅API)可用于在两者之间发送消息。