0

I tried to make pauses between moves by using Thread.sleep but it doesn't work properly. When I start demo, the screen just freezes and after a few seconds shows me a resolved puzzle... This is my code:

// starting a demonstration
public void startDemo() {
    ArrayList<Integer> shortestPath = Algorithms.getShortestPath(); // getting the sequence of tile numbers to move
    for (Integer tileNumber: shortestPath) {
        try {
            board.move(tileNumber); // moving a tile
            boardView.invalidate(); // redraw on screen
            Thread.sleep(500); // trying to make a pause between moves
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

I read that blocking UI thread is a bad practice. But what is the best way to resolve this problem?

Zoe
  • 27,060
  • 21
  • 118
  • 148

0 Answers0