我有两个名为 A 和 B 的班级。 类 B 包含一个名为 calculate 的静态函数,它执行异步网络调用并在本地存储它的数据。
我想知道以下代码是否会终止计算功能中的异步任务。
Class A
{
B.calculate(); // performs long running async task
B.calculate(); // the above call to calculate has not finished but this was called
}
从第一次调用计算开始的异步任务是否会继续执行,还是会被销毁并创建一个新任务 ?
答案 0 :(得分:0)
不,再次执行AsyncTask不会杀死原始版本。相反,它会向异步任务队列添加一个新任务(因为默认情况下,一次只运行1个异步任务),最终将运行该任务导致第二个网络请求。
(注意:上面假设您创建了AsycTask子类的新实例。如果您尝试再次执行相同的实例,您将获得异常。)