最奇怪的事情正在发生。在我的onClick(View ...)中,我有一些代码块,主要是'if / else'块。序列是(在伪代码中,为了节省冗长的代码):
但正在发生的是代码2.正在播放,代码3正在发生。代码4.只有'boo'媒体播放器正在发生,我注意到图像按钮闪烁。应该在代码1中设置的图像被延迟并且仅在'boo'媒体播放器之后发生。替换代码1中的第一个图像设置的“标志”图像正在发生,但由于代码1处于延迟状态,所发生的是图像没有变化(虽然它是,它只是在延迟然后它闪烁所以很快它似乎没有改变)。所以代码1.是延迟的。 此外,如果它进入其他并且点击了右图像,那么代码5中的图像。会切换到'另一个',但相应的MeidaPlayer不会播放,'欢呼'MediaPlayer不会播放,'' tick'图像不显示,其他逻辑不会发生。它似乎忽略了代码。 这里发生了什么事?这是多线程的情况吗?在自己的线程中对代码的不同部分进行分组并立即启动它们只会抛出异常。任何帮助将不胜感激!
答案 0 :(得分:0)
如果您想延迟代码,请使用Handler.postDelayed(Runnable, long)
。这不会阻止UI线程,并且会在您需要时执行。
对你的代码进行清除,你真的不清楚你想要实现什么,以及你是如何实现它的。
答案 1 :(得分:0)
只是为了解释亚当的想法。
将它放在Activity类中:
final Handler handler = new Handler();
Runnable _rnbl = new Runnable() {
public void run() {
// Your code
}
};
并像这样称呼它
handler.postDelayed(_rnbl , 5000);