0

我有一个活动,它有一个扩展 SurfaceView 并实现 Runnable 以不断绘制 Canvas 对象的类。我意识到当我想切换活动并杀死当前活动时,即使我调用 Thread 也不会自行销毁finish()。因此,我想知道何时是销毁该线程的最佳时间(可能在onDestroy()方法中?),更重要的是如何销毁该线程?谢谢你。

4

1 回答 1

1

不,因为活动结束时并不总是调用 onDestroy。最好的办法是在 onStop() 中杀死线程,并在 onStart() 中始终启动它。

这样,当您的活动在后台时,线程将永远不会运行,并且在关闭时将被杀死。

杀死一个线程取决于你使用的是什么类型的线程。一个普通的线程可以被杀死

yourThread.interrupt()

然后在你的线程中你会做类似的事情

while(!Thread.currentThread().isInterrupted()) {
         // ...
    }
于 2018-02-27T18:28:41.067 回答