我正在尝试创建一个可以模拟两个角色的战斗的应用程序,我需要更新他们的hp的一些TextViews,因为它下降。当两个线程正在运行时,这当前正在发生。他们的hp是一个全局变量,因为只能在主线程中修改视图,所以我会在线程运行时运行while循环,以便不断更新textview。在Logcat中,您可以看到while循环正在运行,而hp正在运行。但是,直到线程完成后才会更新textview。
我尝试使用runnables和asynch任务来更新textviews。这些方法都不起作用。为什么会这样?
答案 0 :(得分:0)
要从线程更新主要活动的视图,您必须将Handler传递给您的线程。 Handler将允许您以异步方式将消息发送到另一个线程。 然后,通过打开消息键,您将能够使用消息的值更新视图。这是Android将数据从线程传递到线程的机制。
我建议您查看参考资料部分developer.android.com上的lunarLander示例应用程序中的代码。
这是一个更简单的例子: http://www.helloandroid.com/tutorials/using-threads-and-progressdialog
希望它有所帮助。再见。