我们必须在ondestroy方法中中断后台线程吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们必须在ondestroy方法中中断后台线程吗?相关的知识,希望对你有一定的参考价值。

我正在运行一个后台线程,它贯穿整个应用程序的生命周期。我们需要在onDestroy方法中中断这个线程吗?还是由android系统处理?如果我们不手动中断,是否会导致内存泄漏?

答案

当活动消失时,完成待处理任务是一个很好的做法,因为基本上无论线程做什么都不会对用户产生影响,因为它不会修改UI。

关于内存泄漏,Android应用程序在linux进程中运行,因此线程的上下文是应用程序,而不是活动,这就是为什么当活动消失时,您的线程将继续运行并且您可能更新死亡对象。停止它以避免内存泄漏是一个很好的做法,因为你保留了对你想要更新的内容的引用(当然,除非你使用WeakReference)。

以上是关于我们必须在ondestroy方法中中断后台线程吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 JobIntentService 中可以在没有 onHandleWork() 的情况下调用 onDestroy() 吗?

关于Android Activity 调用onDestroy 后可以接收KeyEvent 吗?为啥 mapLayout 为空?

鳗鱼劈断后下半身还能运动,机器人:拿来吧你丨Science子刊封面

多线程-线程同步异步

应用程序在后台时中断后恢复执行代码

在 onDestroy 中进行所有清理是不是安全?