2015-01-21 4 views
0

Просто интересно, есть ли способ обновить данные DoInBackground AsyncTask. Как, например, вращение изображения, я использую растровое изображение, которое я хочу обновлять каждый раз, когда поток пользовательского интерфейса получает новые данные, я хочу передать эти данные в AsyncTask, которые он может работать в фоновом режиме.Динамическое обновление doInBackground params в AsyncTask

Любые советы для этого? Спасибо

+0

Просто запустите новый экземпляр AsyncTask и передайте новые данные для выполнения метода или конструктора AsyncTask –

ответ

2

AsyncTask предназначен для небольшого количества работы и выхода. Они не предназначены для длительных операций, поэтому было бы нецелесообразно пытаться передавать в него новые данные.

Похоже, что вы должны сделать, это:

  1. UI получает новое изображение
  2. начать новую задачу асинхронной обработки изображения. Задавать хранилище в переменной-члене.
  3. Если пользовательский интерфейс снова получает новое изображение, проверьте, все ли запущена существующая задача async. Либо отмените эту задачу и запустите новую, либо отбросьте новое изображение, и пусть текущая задача будет завершена.
Смежные вопросы