Зачем обновлять индикатор выполнения с помощью простого потока? - PullRequest
0 голосов
/ 10 ноября 2019

Документация Android гласит: «Пользовательский интерфейс не может быть обновлен потоком, не связанным с пользовательским интерфейсом», но в случае индикатора выполнения исключение не выдается. Мой индикатор прогресса обновляется не пользовательским интерфейсом (необработанным потоком). Тем не менее, я получаю исключение в случае других виджетов. Я просто хочу уточнить, почему это происходит (этого не должно происходить)! вот мой код:

public class MainActivity extends AppCompatActivity {
    ProgressBar progressBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        progressBar=findViewById(R.id.progress_bar);

        MyThread thread=new MyThread();
        thread.start();
    }

    public class MyThread extends Thread{
        @Override
        public void run() {
            super.run();
            int i=0;
            while(i<=100){
                i++;
                progressBar.setProgress(i);
                try
                {

                    Thread.sleep(50);

                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
...