2016-07-14 5 views
1

При выполнении AsyncTask в AsyncTask.SERIAL_EXECUTOR режиме: Является ли onPostExecute() (на UI потоке) гарантированно будет выполнен сразу после doInBackground() и перед другой начал AsyncTask экземпляр может получить вызвать onPreExecute() для новой задачи?Asyntask последовательный исполнитель

Я имею в виду режим серийного исполнителя. Гарантирует ли это, что также обратные вызовы onPostExecute()/onPreExecute() тоже на заказ?

Эта сериализация является глобальной для конкретного процесса.

Это то, что вышеуказанные средства?

ответ

0

После doInBackground() изменения нити и onPostExecute() работает на UI потоке. А после doInBackground() первой задачи начинается doInBackground() другой задачи doInBackground(). Таким образом, нет никаких гарантий.

+0

Вы на 100% уверены? Они могут иметь блокировку где-то, предотвращая выполнение нового onPreExecute до того, как onPostExecute() из предыдущего запуска закончит, нет? – JohnyTex

+0

@JohnyTex 100% уверен, что ... –

+0

Но я полагаю, в любом случае, если я что-нибудь (важное) в OnPreExecute() мне будет хорошо в любом случае, так как doInBackground() блокирует не делать. – JohnyTex

Смежные вопросы