1

アドバイスが必要です。ユーザーがボタンを押したときに発生する一連の 4 つのアクションを持つアプリを構築しています。ユーザーが GO を押すとすぐに、そのボタンが無効になり、4 つのアクションのどれが実行されているかをインターフェイスの視覚的な合図で示す必要があります。(たとえば、ImageView の可視性を変更する) GUI は、再生中のサウンドと同期を保つためにすぐに変更する必要があります。

4 つのアクションのそれぞれの後、現在実行中のアクションを反映するように GUI を変更する必要があります。

現在の試み – 最初のアクションが開始する前 (サウンドが再生されている)、およびアクション間の適切なタイミングで GUI を変更することができません。アクションは、4 つの異なるサウンドを再生することです。現在、MediaPlayer を使用しています。

必要なときに GUI を強制的に更新しようとしてもうまくいきませんでした。私は AsyncTask を使用し、setEnabled()、invalidate()、forceLayout()、refreshDrawableState() のすべての組み合わせを試して、必要なときに GUI で物事を強制的に発生させようとしました - 順番に再生される 4 つのサウンドに対応します。

私の問題は、1 つの onClick ハンドラーで 4 つのことをしようとしているようです。「将来いつか」reDraw を呼び出す validate() に本当に苦労しています。

順番に起こっている 4 つの事柄に視覚的な手がかりを提供するのに、どのデザイン パターンが最適かはわかりません。

私はハンドラーを見始めたところです。これは行く方法ですか?簡単だと思いました。何かアドバイス?

4

1 に答える 1

0

私の記憶が正しければ、AsyncTask のメソッドonPreExecuteとメソッドは GUI スレッドで実行されます。onPostExecuteこれらのメソッドからの GUI の更新は機能しませんか?

于 2012-06-15T06:39:09.453 に答える