Я делаю аудиоплеер, и у меня все остальные части работают, за исключением быстрых кнопок перемотки вперед и назад.Android: onLongClickListener while - падает в бесконечный цикл и висит приложение
Я не знал, как это сделать, когда я удерживаю кнопку быстрой перемотки вперед или назад - это будет увеличивать прогресс, и когда его отпустить, он остановится и начнет играть музыку с этой части.
Я написал:
forwardButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
while(v.isPressed()){
currentProgress.setProgress((currentProgress.getProgress()+1));
}
return false;
}
});
, но когда я держу вниз быстро вперед, приложение попадает в бесконечный цикл в основном и вешает вызывая андроид, чтобы дать мне возможность ждать или Прервать.
Думаю, мне нужно реализовать Runnable на нем и сделать это с помощью этого, чтобы избежать зависания, но я не уверен, как это сделать.
Помощь?
Переменные:
forwardButton = Fast Forward button.
currentProgress = seekbar for music.
mPlayer = music player.
Вы не можете использовать цикл while() или аналогичную операцию блокировки в событии пользовательского интерфейса. Вместо этого вы должны преобразовать свой проект в архитектуру с сохранением состояния, т. Е. Установить флаги или изменить отслеживаемое состояние для каждого действия, а затем выполнить результирующие действия, когда ваши флаги или состояние указывают, что были предприняты необходимые шаги, которые должны были вызвать это. –