android - 从 AsyncTask 调用不同的 Activity 方法

标签 android android-asynctask

我有一个 MainActivitySecondaryActivity 和一个 AsyncTask 类。
MainActivity 有一个名为 doSomething()

的方法

我从 MainActivity 中调用 AsyncTask,如下所示:

new asyncTask(MainActivity.this).execute();

这意味着我可以在 onPostExecute 中引用 MainActivity

@Override
protected void onPostExecute(Boolean result){
    super.onPostExecute(result);
    # activity is defined as this.activity
    activity.doSomething();       
}

如何以类似的方式从 secondaryActivity 调用 AsyncTask,因为我需要引用 MainActivity 来访问其方法?

编辑:我希望始终调用 doSomething() 。因此,即使它来自 SecondActivity,一旦它完成后台操作 -> doSomething()

我调用的方法刷新 MainActivity 的屏幕以显示数据更改。辅助 Activity 仅在暂停/停止/销毁时调用 AsyncTask,但目前 Asynctask 在 MainActivity 启动后完成,因此更改不可见。

最佳答案

我认为您的 AsyncTask 当前嵌套在 MainActivity 中。最好把它放在单独的类中。无论它需要什么参数,都将其传递到其构造函数中。让您的两个 Activity 实现相同的接口(interface)。像这样的事情

class MainActivity/SecondaryActivity implements DoSomethingListener {
     void doSomething() {
     }
}

还将您的 Activity 引用传递给构造函数中的 AsyncTask。

最后是 onPostExecute,因为您引用了 MainActivity 或 secondary Activity。调用activity.doSomething。

关于android - 从 AsyncTask 调用不同的 Activity 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37911206/

相关文章:

android - 将参数从 Android AsyncTask 发送到远程服务器

java - 如何让异步任务在 Android 中完成

java - 异步任务中的多个操作 (Android)

android - 异步任务并从 url NullPointerException 解析 JSONObject

java - TD下的jsoup和特定元素

android - 将所有正在进行的请求放入队列改造和 okhttp

java - 带有调用电子邮件和短信功能的弹出窗口

java - 实时读取 Runtime.getRuntime().exec()

java - 读取 CPU 使用率时出错 :/proc/stat (permission denied)

android - 数据加载两次...意味着 AsyncTask onPostExecute 加载相同的数据两次?