У меня есть проект колледжа, где мне нужно использовать потоки для выполнения задач в паралели. Я начал использовать AsyncTask и простую задачу task.execute (params), но потом выяснил, что это не позволяет запускать несколько Asynctasks всего один раз. Тогда я обнаружил task.executeOnExecutor, который я использую, как этот (код внутри моего класса ElevatorControl):работает несколько AsyncTasks: task.executeOnExecutor не работает
taskDesligaLampada.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "");
я выполнить это в моем классе ElevatorControl (который не является деятельностью). Самое забавное: executeOnExecutor не запускает метод doInBackground задачи. Я попытался с помощью ведения журнала для debuggig как это (в моем AsyncTask):
@Override
protected String doInBackground(String... string_qualquer)
{
//PAREI AKI PARECE QUE ESSA TASK NÃO EXECUTA. PROBLEMA DO EXECUTE ON EXECUTOR?
Log.i("ElevatorControl", "Elevador id=" + elevatorControl.getIdElevador() + ";fechando porta");
this.interfaceDaPorta.fecharPorta(andarAtual, this.elevatorControl.getIdElevador());
return "";
}
, но журнал не появляется на LogCat, что означает, что он не работает. Пробовал ловить переменное состояние, возвращаемый после executteOnExecutor как этот (метод внутри моей задачи ElevatorControl):
//os eventos abaixo deveriam ser concorrentes. Por isso as tasks foram criadas
TaskFechaPorta taskFechaPorta = new TaskFechaPorta(this, interfaceDaPorta, sobeOuDesceOuParado, andarAtual);
Status statusThreadRoda = taskFechaPorta.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "").getStatus();
и, отладки, я узнал, что это состояние «работает». Почему он не запускает метод doInBackground моей задачи?
может ли кто-нибудь сказать мне, что я делаю неправильно?
P.S .: Я использую много асинхронных задач для моего проекта, по крайней мере 18, потому что мой учитель так сказал.