Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java handler.postDelayed不工作(android eclipse)_Java_Android_Multithreading - Fatal编程技术网

Java handler.postDelayed不工作(android eclipse)

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

在mediaplayer中播放这组声音后,我正在尝试进行延迟,以避免重叠。我尝试了thread.sleep,它工作了,但问题是我有一个停止声音的按钮,但由于thread.sleep,它不工作,所以我搜索并尝试了另一种方法,在不锁定UI的情况下进行延迟,我找到了handler.postDelayed,但它不工作。有人能帮我解决这个问题吗?提前谢谢

这是我的密码:

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);