android - 我们是否必须在 ondestroy 方法中中断后台线程?
问题描述
我正在运行一个贯穿应用程序生命周期的后台线程。我们需要在 onDestroy 方法中中断这个线程吗?还是由android系统处理?如果我们不手动中断,会不会导致内存泄漏?
解决方案
最好在活动消失时完成待处理的任务,因为基本上线程所做的任何事情都不会对用户产生影响,因为它不会修改 UI。
关于内存泄漏,android 应用程序在 linux 进程中运行,因此线程的上下文是应用程序,而不是活动,这就是为什么当活动消失时,您的线程将继续运行并且您可能会更新死亡对象。停止它以避免内存泄漏是一个很好的做法,因为您保留了对要更新的内容的引用(当然,除非您使用 a WeakReference
)。
推荐阅读
- mysql - 更改 MySQL 查询执行顺序
- python - mapreduce 程序计算最大平均耗电量。我已附上 csv 文件
- python - TypeError : strptime() 参数 1 必须是 str,而不是 None
- reactjs - 使用 Web 视图在移动应用程序中加载网站
- excel - excel VBA - 数组循环
- python - python导致函数调用不同但代码相同。蟒蛇错误
- jmeter - 我必须参考汇总报告中响应时间的 90% 列“总计”行值吗?
- .net - 尝试安装 .Net Framework 时安装不会成功 bc “函数尝试使用保留供其他事务使用的名称。”
- android - 使用 put 请求在 retrofit2 中创建对象数组
- java - 使用数字和范围对字符串列表进行排序