Android:onLongClickListener while - 进入无限循环并挂起应用程序

时间:2015-03-29 16:41:52

标签: android runnable

我正在制作音频播放器,除快进和快退按钮外,其他所有部件都在工作。

当我按住快进或快退按钮时,我不知道怎么做 - 它会增加进度,当松开时它会停止并开始播放该部分的音乐。

我写了这个:

   forwardButton.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {

            while(v.isPressed()){
            currentProgress.setProgress((currentProgress.getProgress()+1));
            }
            return false;
        }
    });

但是当我按住快进时,应用程序基本上陷入无限循环并挂起导致android给我选择等待或终止。

我想我需要在它上面实现Runnable并通过它来避免挂起,但我不知道该怎么做。

帮助?

变量:

forwardButton = Fast Forward button.
currentProgress = seekbar for music.
mPlayer = music player. 

1 个答案:

答案 0 :(得分:1)

不要这样做。相反,使用一个处理程序并在runnable中包含你的while bucle,它将在你的主线程上发布setProgress()。每次发布正向订单时,延迟X秒,然后检查按钮是否一直点击,如果是,则重新发布可运行。