异步同步
Asynchronous synchronisation
我有 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 也可以满足您的需要。
我有 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 也可以满足您的需要。