3 回答

TA贡献1869条经验 获得超4个赞
这个完全取决于实现的方式,比如你有一个网络线程访问网络,然后更新列表。界面销毁了,请问你是否还要在被销毁的界面更新列表?而你有一个网络线程访问网络,目的是同步本地数据,那么是否要在调用的界面被销毁时去中断线程?
这些终究是开发者决定的,因为你需要线程活着,所以他才活着,你要关闭,那么他就关闭了。
和功能的需求是相关的,比如你举的例子,列表还没读完,按了home键,那么网络线程还继续吗?
这种销毁属于需要恢复的销毁,称之为不可见,不可见时通常会考虑继续访问网络,如果中断网络,那么等到界面可见了就有需要恢复网络访问,界面更新和网络访问就在一种平衡中进行显示,这完全取决于开发者的要求,而不是一尘不变的,因为界面销毁了,自然网络请求就要中断,或者就要继续。

TA贡献1796条经验 获得超4个赞
iOS,在基类重写 dealloc 方法
取消请求即可,为啥要取消线程
- (void)dealloc
{
[[AFHTTPSessionManager manager] invalidateSessionCancelingTasks:YES];
}

TA贡献1842条经验 获得超21个赞
我觉得这个和线程池没有什么关系啊
给线程发送中断信号或者自定义的信号,线程里面check中断信号或者自定义信号以及捕获中断异常(如果有的话),然后清理资源(关闭socket),然后线程自己退出。如果线程正好在更新UI,那要check UI是否还有效,一般UI的组件都有isDisposed之类的方法。
添加回答
举报