Обновление Progressbar вызывает черный экран - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь обновить индикатор выполнения, но он показывает черный экран всякий раз, когда я использую индикатор выполнения.Как только я комментирую часть приращения индикатора выполнения, мой код работает нормально.Может кто-нибудь помочь мне с тем, что я делаю не так?

    new Runnable() {
        @Override
        public void run() {
            for(int i = 0; i < timeout; i++) {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        progressbar.incrementProgressBy(1);
                    }
                });

                try {
                    Thread.sleep(1000);
                }
                catch(Exception e) {}
            }
        }
    }.run();

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

используя нить, вы можете сделать это так ...

public void loadProgressbar()
{
    progressBar.setMax(100);
    progressBar.setProgress(0);

    new Thread(new Runnable() {
        @Override
        public void run() {
            for (progress = 0; progress <= 100; progress++) {

                handler.post(new Runnable() {
                    public void run() {
                        progressBar.setProgress(progress);
                    }
                });


                try {
                    Thread.sleep(50);
                } catch (Exception ex) {
                }
            }
        }
    }).start();
}
0 голосов
/ 20 февраля 2019

Просто используйте этот код в своей основной теме.

 new CountDownTimer(3000, 300) {
        @Override
        public void onTick(long l) {

            progress = progress + 10;
            pb.setProgress(progress);

        }

        @Override
        public void onFinish() {

            pb.setProgress(100);


        }
    }.start();
...