1

我需要一些建议。我正在构建一个应用程序,该应用程序具有在用户按下按钮时将发生的 4 个操作序列。一旦用户按下 GO,该按钮必须变为未启用,并且界面中的一些视觉提示必须显示 4 个操作中的哪一个正在发生。(例如,更改 ImageView 的可见性)GUI 必须立即更改以与正在播放的声音保持同步。

在这 4 个动作中的每一个之后,GUI 必须更改以反映当前正在发生的动作。

当前尝试——我无法在第一个动作开始之前(播放声音)以及在动作之间的适当时间更改 GUI。动作是播放 4 种不同的声音。目前,我正在使用 MediaPlayer。

我没有任何运气试图在我想要的时候强制 GUI 更新。我使用了 AsyncTask,并尝试了 setEnabled()、invalidate()、forceLayout()、refreshDrawableState() 的所有组合,以尝试在我想要它们时强制在 gui 中发生事情——对应于按顺序播放的 4 个声音。

我的问题似乎是我试图在一个 onClick 处理程序中做 4 件事。我一直在为 validate() 在“未来某个时候”调用 reDraw 而苦苦挣扎。

我不知道哪种设计模式最适合为依次发生的 4 件事提供视觉提示。

我刚刚开始研究处理程序。这是要走的路吗?我以为这很容易。有什么建议吗?

4

1 回答 1

0

如果我没记错的话 AsyncTask 的onPreExecuteonPostExecute方法在 GUI 线程上执行。从这些方法更新 GUI 不起作用吗?

于 2012-06-15T06:39:09.453 回答