简体   繁体   中英

Thread.sleep in Canvas

I am not able to display the rectangles after a certain delay in code. Here is what I am doing

DashPathEffect dashPath =new DashPathEffect(new float[]{1,0}, 1);

        paint.setPathEffect(dashPath);
        paint.setStrokeWidth(300);
        final int  size =300;

canvas.drawLine(0, size ,100 , size, paint);

try {

            Thread.sleep(4000, 0);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

canvas.drawLine(110, size ,200 , size, paint);


I am not able to notice any delay between these two rectagles in the mobile screen. Both appear at the same time. All I am trying to do is, draw the rectangles one after other with some delay in between. What this code is rather doing is, waiting for 4 seconds and then displaying both rectangles at same time. Thank you.

You should never sleep in the UI thread. As you saw, this causes the entire program to lock up and wait for the sleep to complete.

Instead, in this case you might want to look into using a handler. See timed ui-updates for a full description on how to do this.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM