将静态类与多个静态AsyncTasks一起使用是否有不利之处?

时间:2018-06-24 17:11:49

标签: java android android-asynctask

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

(在测试环境中)运行良好,并且使“活动”中的代码非常简洁:

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();

现在,如果这种方法有任何问题,我将做一些额外的研究。我已经看到了很多嵌套静态AsyncTask的用例,但是我需要将它们完全解耦和模块化,这就是为什么我将它们放在单独的静态类中的原因。我想不到任何缺点。可以给更有经验的人称体重吗?

1 个答案:

答案 0 :(得分:1)

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

但是,您只需将上下文对象传递给静态类即可解决该问题。但是,当您的Async Task花费很长时间并且您的活动在调用onFinish之前就被销毁了怎么办?您的上下文对象来自被破坏的活动,因此您会收到错误消息。