Асинхронная синхронизация - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть 2 асин c задачи:

  1. Я получаю местоположение пользователя;
  2. Я получаю список событий из моего API с помощью Retrofit;

Мой вопрос: Как настроить действие только после получения успешного результата обоими методами? Спасибо.

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

Не рекомендуется использовать AsyncTask, поскольку он устарел согласно официальной документации .

Я рекомендую вам использовать Coroutines для использования вашего API, это проще, чем AsnycTask, и вы будете писать меньше кода.

Проверьте официальную документацию сопрограмм. Также, отметьте введите здесь описание ссылки , которое будет отвечать вашим потребностям.

Если вы все еще используете Java, вы можете использовать RXjava2 для ваших сетевых вызовов c asyn. отметьте эта статья также будет отвечать вашим потребностям.

0 голосов
/ 18 апреля 2020

1) Выполните 2 асинктаски.

2) в первой асинхронной задаче найдите местоположение пользователя в doInBackground(), а затем в onPostExecute() запустите вторую асинктаску.

3) во второй asynctask получает события из API в doInBackground().

4), а затем в onPostExecute() второй асинхронной задачи вы делаете то, что вы хотите сделать (потому что обе задачи завершены).

здесь говорят, что asyncTask устарела, поэтому будьте осторожны.

...