java - 我可以按顺序链接异步任务吗(在前一个异步任务完成后开始一个)

标签 java android android-asynctask

每次我执行 httpRequest 时,屏幕会在代码执行时锁定几秒钟。因此,我使用 AsyncTask 在一个单独的线程中完成我所有的 httpRequest 工作,同时建立一个 ProgressDialog 以便用户知道发生了什么事。

我最近遇到了以下情况:我的 httpRequest 之一的输入依赖于先前 httpRequest (+parse) 操作的结果。我不能只是按顺序放置两个 AsyncTask,因为 Android 会将它们放在两个线程中并在第一个线程未完成的情况下启动第二个线程。如果没有适当的输入(第一个 httpRequest 的结果),我的第二个 httpRequest 将使应用程序崩溃。

有没有办法我可以输入一个 wait() 来强制第二个 AsyncTask 在第一个完成之前不要启动?

最佳答案

前几天我也遇到了同样的情况。 我以这种方式解决了它: 将 Activity 的引用传递给异步类的构造函数并在后台执行 do 函数。现在在执行后函数中,从异步类调用你的 Activity 的公共(public)方法以再次执行任务......或者试试这个:

            if (asynclass.getStatus() == android.os.AsyncTask.Status.PENDING) {
                asynclass.execute();
            } else if (RF.getStatus() == android.os.AsyncTask.Status.FINISHED) {
                asynclass = new asyncclass();
                asynclass.execute();
            } else {
                Toast.maketoast(this, "Plz wait", 1).show();
            }

干杯

关于java - 我可以按顺序链接异步任务吗(在前一个异步任务完成后开始一个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7494515/

相关文章:

android通过网络加密json数据

android - 基础知识 : Running code in main thread

java - 我在使用 Java 代码执行二进制可执行文件时遇到一些问题

java进程和输入流

Android c2dm 302 Http错误

java - 在 Android 中使用 WebView

java - 与 tez0.5.2 集成时在配置单元 1.0.0 中执行插入操作时出错

java - 选择单个单词或字符串(双击)以进行编辑

java - Android AsyncTask,处理不可用的服务器

android - 对话框中的控制音量 seekBar (AsyncTask)