Java handler.postDelayed不工作(android eclipse)
在mediaplayer中播放这组声音后,我正在尝试进行延迟,以避免重叠。我尝试了thread.sleep,它工作了,但问题是我有一个停止声音的按钮,但由于thread.sleep,它不工作,所以我搜索并尝试了另一种方法,在不锁定UI的情况下进行延迟,我找到了handler.postDelayed,但它不工作。有人能帮我解决这个问题吗?提前谢谢 这是我的密码:Java handler.postDelayed不工作(android eclipse),java,android,multithreading,Java,Android,Multithreading,在mediaplayer中播放这组声音后,我正在尝试进行延迟,以避免重叠。我尝试了thread.sleep,它工作了,但问题是我有一个停止声音的按钮,但由于thread.sleep,它不工作,所以我搜索并尝试了另一种方法,在不锁定UI的情况下进行延迟,我找到了handler.postDelayed,但它不工作。有人能帮我解决这个问题吗?提前谢谢 这是我的密码: protected void managerOfSound() { int size = tempq.size(); f
protected void managerOfSound() {
int size = tempq.size();
for (int i = 0; i < tempq.size(); i++) {
String u =tempq.get(i);
//WHOLE
if (u.equals("a4")){
mp = MediaPlayer.create(this, R.raw.a4);
mp.start();
final Runnable r = new Runnable() {
public void run() {
handler.postDelayed(this, 2000);
}
};
受保护的void managerOfSound(){
int size=tempq.size();
对于(int i=0;i
postDelayed(Runnable r,long delayMillis)导致Runnable被添加到消息队列中,并在指定的时间段后运行。Runnable将在该处理程序所连接的线程上运行(int htis case The UI thread)。时基为uptimeMillis().深度睡眠时间将增加执行的额外延迟
参考资料:如果你也解释了解决方案,答案总是更有力。是的,但我认为这很简单。好吧,简短的解释也没什么坏处,是吗?
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// stuff you wanna delay
}
}, 2000);