AsyncTask - 等待其他 Asynctask 的执行

Posted

技术标签:

【中文标题】AsyncTask - 等待其他 Asynctask 的执行【英文标题】:AsyncTask - wait for execution of other Asynctask 【发布时间】:2020-09-18 16:15:16 【问题描述】:

我试图制作一个程序,该程序将通过 HttpURLConnection 使用 AsyncTask 获取数据,但是为了获取我需要登录的数据,所以我需要登录然后获取数据。为了做一个好的OOP,我不能制作类似的程序来做同样的事情。我该如何处理?这是我所做的一个例子:

HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            httpURLConnection.setRequestMethod("POST");
            httpURLConnection.setRequestProperty("content-type","application/json");
            httpURLConnection.setRequestProperty("user-agent","armon-api-android-client");

            OutputStream outputStream = httpURLConnection.getOutputStream();
            BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
            bufferedWriter.write(requestParams.toString());
            bufferedWriter.flush();
            bufferedWriter.close();
            outputStream.close();
.
.
.

【问题讨论】:

【参考方案1】:

您可以在创建 AsyncTasks 时覆盖 onPostExecute 函数

loginAndGetData = new RawRequest()
            @Override
            protected void onPostExecute(String res)
            //DO YOUR JOB
            RawRequest newTask = new RawRequest();
            newTask.execute("get data params");

loginAndGetData.execute("login params");

【讨论】:

以上是关于AsyncTask - 等待其他 Asynctask 的执行的主要内容,如果未能解决你的问题,请参考以下文章

android asynctask导致另一个活动

Android AsyncTask 等待其他函数完成

等待 Google 在 AsyncTask 中放置照片请求

在主线程中等待 AsyncTask

让一个 AsyncTask 等待另一个完成?

在返回结果之前等待 AsyncTask.execute(()) 完成