gpt4 book ai didi

java - 使用具有多个静态 AsyncTask 的静态类有什么缺点吗?

转载 作者:行者123 更新时间:2023-12-02 11:05:20 24 4
gpt4 key购买 nike

我创建了一个带有一些静态 AsyncTasks 的静态类 (NetworkUtils.java),每个类都会向服务器发送一些数据并检索响应。

它运行良好(在测试环境中),并且使 Activity 中的代码非常干净:

NetworkUtils.SomeNetworkingTaskCallbackInterface callbacks = 
new NetworkUtils.SomeNetworkingTaskCallbackInterface() {
@Override
public void onFinished(String result) {

}

@Override
public void onFailed() {

}
};

NetworkUtils.SomeNetworkingTask task = new NetworkUtils.SomeNetworkingTask(callbacks);
task.execute();

现在我正在做一些额外的研究,看看这种方法有什么问题。我见过很多嵌套静态 AsyncTasks 的用例,但我需要它们完全解耦和模块化,这就是为什么我将它们放入单独的静态类中。我想不出有什么缺点。有经验丰富的人可以参与讨论吗?

最佳答案

我能想到的唯一缺点是您无法访问父类的非静态成员。例如,如果您的静态 Async Task 对象具有 Activity 父类,您将无法调用需要 context 的方法。这意味着您将无法从异步任务启动服务、 Activity 或广播事件。

但是,您可以简单地将上下文对象传递给静态类来解决这个问题。但是,当您的异步任务花费很长时间并且您的 Activity 在调用 onFinish 之前就被销毁时,会发生什么情况呢?您会收到错误,因为您的上下文对象来自已损坏的 Activity 。

关于java - 使用具有多个静态 AsyncTask 的静态类有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51012176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com