Страницы

Поиск по вопросам

среда, 26 февраля 2020 г.

Предотвращение одновременного запуска нескольких AsyncTask

#android #многопоточность #android_asynctask #mutex


Есть некий AsyncTask. Нужно предотвратить одновременное выполнение нескольких его
экземпляров.

Есть идея использовать старый добрый Mutex, но насколько это правильно?
    


Ответы

Ответ 1



У AsyncTask есть метод executeOnExecutor (Executor exec, Params... params), с помощью которого можно организовать поведение Ваших тасков. Так же есть два заготовленных для этого Executor'а: SERIAL_EXECUTOR и THREAD_POOL_EXECUTOR Если я правильно понял вопрос Вам нужен SERIAL_EXECUTOR - все таски запущенные такой командой будут выполняться по очереди task.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, params...); Либо Вы можете создать свой, более подходящий экземпляр Executor и использовать его для организации задач.

Комментариев нет:

Отправить комментарий