AssyncTask.get() блокирует код и до него

101
25 марта 2021, 12:50

Про метод get() класса AsyncTask сказано, что при вызове его в основном потоке до завершения операции в AsyncTask, он будет ждать ее завершения полностью заблокировав вызвавший его поток. Разве это распространяется на код "до" вызова get()? Например при вызове get() в слушателе нажатий поток останавливается еще до вызова get() и операция указанная до get() тоже ждет конца операции в AsyncTask. Но я вижу примеры в которых код до get() выполняется прежде чем поток будет заблокирован. Это устаревшие примеры?

    class MyAsyncTask extends AsyncTask<Void,Void,Integer>{
    protected void onPreExecute(){
        super.onPreExecute();
        tvInfo.setText("Pre Execute");
    }

    @Override
    protected Integer doInBackground(Void... voids) {
        try{
            sleep(5000);
        }catch(InterruptedException e){
            e.printStackTrace();
        }
        return 100500;
    }
    protected void onPostExecute(Integer i){
        super.onPostExecute(i);
        tvInfo.setText("Post Execute with result="+i);
    }
}
public void onClick(View v) {
    if(maTask == null) {return;}
    tvInfo.setText("GET IS PRESSED");
    try{
        Toast.makeText(this,"RESULT IS "+ maTask.get(1, TimeUnit.SECONDS),Toast.LENGTH_SHORT ).show();
    }catch(ExecutionException| InterruptedException e){
        e.printStackTrace();
    }catch (TimeoutException e){
        Toast.makeText(this,"TIMEOUT EXCEPTION",Toast.LENGTH_SHORT).show();
    }
}

}

READ ALSO
Как при помощи регулярного выражения разделить строку по пробелам на знаки и числа?

Как при помощи регулярного выражения разделить строку по пробелам на знаки и числа?

Нужно чтобы строка типа "+ 5 7" делилась на знак, число, числоЗнак любой, число любое

111
A collection with cascade=&ldquo;all-delete-orphan&rdquo; was no longer referenced by the owning entity instance

A collection with cascade=“all-delete-orphan” was no longer referenced by the owning entity instance

Помогите разобраться с мистическим поведениемИмеется сущность

85
Анимация спрайтов

Анимация спрайтов

Не могу понять, как исправить мигание анимации((

96