异步同步

Asynchronous synchronisation

我有 2 个异步任务:

  1. 我正在获取用户的位置;
  2. 我正在使用 Retrofit 从我的 API 中获取事件列表;

我的问题:如何在两种方法都获得成功后才设置一个动作? 谢谢。

1) 创建 2 个异步任务。

2) 在第一个异步任务中获取用户在 doInBackground() 中的位置,然后在 onPostExecute() 中启动第二个异步任务。

3) 在第二个异步任务中从 api 在 doInBackground() 中获取事件。

4) 然后在第二个异步任务的 onPostExecute() 中你可以做任何你想做的事(因为两个任务都完成了)。

here 他们说 asyncTask 已被弃用,所以要小心。

不建议使用 AsyncTask,因为根据 the official documentation,它现在已被弃用。

我推荐你使用Coroutines来消费你API,它比AsnycTask更简单,你会写更少的代码。

查看协程的官方文档。 另外,勾选 enter link description here 哪个可以满足您的需要。

如果您仍在使用 Java,您可以使用 RXjava2 进行异步网络调用。检查 this article 也可以满足您的需要。