最奇怪的事情正在發生。在我的onClick(查看...)我有代碼塊,主要是'if/else'塊。序列是(在僞代碼,爲您節省冗長的代碼):我的代碼行不是在執行延遲 - Android
- 我有一個圖像,需要使用imageButton.setImageResource(randomImage)設置;然後
- 我有這個圖片,需要打,然後
- 我把睡眠(1800)相關的MediaPlayer的位置,否則的MediaPlayer延續到下MediaPlayer的(這工作正常)
- 此圖片的數據進行比較圖片。如果不相同,則播放另一個名爲'boo'的MediaPlayer,並且應該在上面的代碼1中顯示的圖像被替換爲'flag'圖像。其他//如果它的正確圖像然後
- 切換到另一個圖像,播放它相應的MeidaPlayer,播放「歡呼聲」MediaPlayer並將圖像更改爲「嘀嗒」圖像,然後做一些其他邏輯的東西。
但是發生了什麼事是代碼2正在播放,代碼3正在發生。代碼4.只有'boo'mediaplayer正在發生,我注意到imagebutton閃爍。應該在代碼1中設置的圖像被延遲,並且僅在'boo'媒體播放器之後發生。代碼1中的第一個圖像設置的「標誌」圖像正在發生,但由於代碼1處於延遲狀態,所發生的情況是圖像沒有改變(雖然它只是處於延遲狀態,然後閃爍,很快它看起來不會改變)。所以代碼1是延遲的。 此外,如果它進入else並右擊圖像,則代碼5中的圖像將切換到「另一個」,但相應的MeidaPlayer不播放,「乾杯」MediaPlayer不播放, 'tick'圖像不顯示,而另一個邏輯不會發生。就好像它忽略了代碼。 這裏發生了什麼?這是一個多線程的情況嗎?將代碼的不同部分分組到自己的線程中,並立即啓動它們只會引發異常。任何幫助將不勝感激!
什麼你指定的比在Android上使用sleep()。但我不知道爲什麼sleep()並不真正表現。 – Yenchi 2012-07-30 14:42:31
'我在這裏放了一個睡眠(1800)'好吧,讓我們從這個開始。擺脫它。重構你的代碼,這樣就不需要在GUI線程中調用sleep()。不要在GUI事件處理程序中入睡或等待! – 2012-07-30 14:42:46