首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用带有多个静态AsyncTasks的静态类有什么缺点吗?

使用带有多个静态AsyncTasks的静态类有什么缺点吗?
EN

Stack Overflow用户
提问于 2018-06-25 01:11:49
回答 1查看 33关注 0票数 0

我创建了一个带有几个静态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();

现在,我正在做一些额外的研究,看看这种方法是否有什么问题。我见过很多嵌套静态AsyncTasks的用例,但我需要它们完全解耦和模块化,这就是为什么我把它们放在一个单独的静态类中。我想不出有什么坏处。可以有更有经验的人加入进来吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-25 01:34:35

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

但是,您可以简单地将上下文对象传递给静态类来解决这个问题。但是,如果您的Async Task花费了很长时间,并且您的活动在调用它的onFinish之前就被销毁了,那么会发生什么呢?您将收到一个错误,因为您的上下文对象来自已销毁的活动。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51012176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档