Android: Как использовать ThreadPoolExecutor для последовательной загрузки списка задач в Android? - PullRequest
0 голосов
/ 04 июня 2011

В моем приложении мне нужно последовательно запускать набор задач. Каждое задание распаковать файл и обновить данные в базе данных. Но я получаю следующее исключение при обновлении данных из разных потоков.

java.lang.IllegalStateException: database not open`

Чтобы предотвратить это, я использую ThreadPoolExecutor для последовательного выполнения задач, чтобы я мог синхронизировать базу данных. Поэтому любой может сказать мне, как использовать ThreadPoolExecutor для выполнения моей задачи. Какие параметры мне нужно передать.

С уважением, Шринивас

Ответы [ 3 ]

1 голос
/ 13 декабря 2011

Как убедиться, что все операторы выполнены? Я попытался выполнить другой поток в asynctask, но нет гарантии, что AsyncTask выполнит внутренний поток, и он перейдет в postExecuteметод.Вы можете проверить мой пример.

0 голосов
/ 30 марта 2018

Для многократного и последовательного запуска одной и той же задачи с различным набором данных лучше всего использовать IntentService.IntentService поддерживает очередь для хранения задач и выполняет их одну за другой, используя один рабочий поток.

Производитель задач отправляет запросы в IntentService, а IntentService добавляет задачу в очередь и последовательно выполняет их в фоновом режиме, используя один рабочий поток.Чтобы узнать, как использовать IntentService, см. Пример IntentService .

0 голосов
/ 04 июня 2011

Используйте asynctask. Он сам использует threadpoolexecutor и довольно удобен в использовании. Если вы хотите запускать задачи последовательно, обязательно вызовите следующую асинктическую задачу в onpostexecute предыдущей асинхронной задачи.

...