Что-то не то с потоками

 
 
 
Сообщения:93
Всем привет.
Вызываю из активности метод update

 private void updateContent() {
     iv.startAnimation(rotation);     // анимация кнопки обновления в экшнбаре
            try {
                ListContentGetter contentGetter = new ListContentGetter(this);
                html = contentGetter.execute("http://сайт.ру").get();
                if (null == html) return;
                loadHtml(html);
            } catch (InterruptedException e) {
                Log.d(TAG, e.getMessage());
            } catch (ExecutionException e) {
                Log.d(TAG, e.getMessage());
            } finally {
                iv.clearAnimation(); // остановка анимации
            }
        
    }


Почему-то анимация начинается только после выполнения html = contentGetter.execute("http://сайт.ру";).get();

public class ListContentGetter extends AsyncTask<String, Void, String> {

    private static final String TAG = "my";
    private MainActivity mainActivity;
    private int connectState;
    int exitValue;

    ListContentGetter(MainActivity mainActivity) {
        this.mainActivity = mainActivity;
    }

    @Override
    protected String doInBackground(String... params) {

                Runtime runtime = Runtime.getRuntime();
        try {
            Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
            exitValue = ipProcess.waitFor();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        if (exitValue != 0) {
            return notConnectHtmlBegin + "Не могу подключиться к сети." + notConnectHtmlEnd;
        }
        try {
            Connection.Response response = Jsoup.connect("http://сайт.ру")
                    .ignoreHttpErrors(true)
                    .timeout(10000)
                    .maxBodySize(0)
                    .execute();
            Log.d(TAG, "statusCode = " + response.statusCode());
            if (response == null || response.statusCode() != 200) {
                return notConnectHtmlBegin + "Кажется, проблемы на сайте. <br />Проверьте в браузере." + notConnectHtmlEnd;
            }
                        
            }
            return str;
        } catch (IOException e) {
            connectState = -1;
            Log.d(TAG, "IOException: " + e.getMessage());
            e.printStackTrace();
        }
        return str ;
    }
}


Я понял, что проблема в потоках, но где?
 
Модераторы:demon_zxBeowulf13thShogun
Сейчас эту тему просматривают:Нет