Android AsyncTask внутри AsyncTask

Итак, я работаю над декодером штрих-кода, который после того, как мы получим штрих-код, умножаем API через Интернет, чтобы расшифровать то, что было просто сканировано. Дело в том, что мне нужно связать некоторый синтаксический анализ XML вместе, и я не знаю, правильно ли я делаю это.

Таким образом, после сканирования штрих-кода моя программа вызывает ASyncTask, которая передает API для получения имени продукта. После того, как он имеет имя, я хочу, чтобы он вызывал другую ASyncTask. Я знаю, что это возможно, создавая экземпляр ASyncTaks в onPostExecute() другого, но, я думаю, это неправильно, потому что это похоже на коробки внутри ящиков. Так что не возможно / лучше создать экземпляр второй ASyncTask внутри моей основной операции и заставить ее ждать, пока моя первая ASyncTask не будет завершена?

(Английский не мой основной язык, я надеюсь, что я ясно дал понять).

Я думаю, что абсолютно законно начинать вторую AsyncTask в onPostExecute первой AsyncTask, Смешивая обе операции, является плохой логической идеей. Поскольку «Отпрыск» сказал: «Вы должны держать их в разлуке»,

Если вы не хотите, чтобы он был непосредственно внутри самого onPostExecute , установите обработчик для его выполнения в onPostExecute и вызовите этот обработчик из onPostExecute .

И последнее: если у вас много логики – переместите ее в отдельный файл, не оставляйте все в одном файле.

В таких ситуациях может быть лучше выполнить длительные операции вместе в одной AsyncTask.

Другой вариант – использовать API Loaders, это значительно упрощает задачи цепочки. http://developer.android.com/guide/topics/fundamentals/loaders.html

Вы можете пойти на другой подход, если вы столкнулись с такой ситуацией. То есть объединять запросы и операции внутри runnables / callables и управлять ими отдельно внутри, например, в очереди. Вот хороший подход. http://ugiagonzalez.com/2012/07/02/theres-life-after-asynctasks-in-android/

Intereting Posts
Что означает андроид: включено для обслуживания? Горизонтальный ListView в Android? Использование SearchView с AppCompatActivity приводит к сбоям пользовательского интерфейса Новичок запутался функциями findViewById () Android? Передача данных через кабель аудиоразъема на двух устройствах Android Приложение Android VOIP без доступа в Интернет Почему DialogFragment.onCreateView вызывается при уничтожении Activity? Oauth on Appengine с сервисами Google Play Индивидуальные схемы URL-адресов iOS по сравнению со стандартами Universal Links и Android ListView setOnItemClickListener и setOnItemSelectedListener для хранения выбранного элемента Как установить прокси-аутентификацию для Android sdkmanager из командной строки? Где лучше всего хранить глобалы (токен аутентификации) в Android Как программно включить GPS в Android Cupcake Я хочу получать и просматривать sms-разговоры? Получение «Разрешения отказа (13)» при попытке использовать systrace на Moto X с KitKat