我有一个活动,它有一个扩展SurfaceView的类,并实现Runnable以不断在Canvas对象上绘制。我意识到当我想切换活动并杀死当前的活动时,即使我调用finish()
,线程也不会被自己销毁。因此,我想知道什么时候是销毁该线程的最佳时机(可能在onDestroy()
方法?),更重要的是如何销毁该线程?谢谢。
答案 0 :(得分:1)
不,因为onDestroy在活动结束时始终不会被调用。最好的办法是onStop()你杀了线程,而onStart()你总是启动它。
这样一来,当你的活动在后台时,线程将永远不会运行,并且在关闭时会被杀死。
杀死线程取决于您使用的是哪种线程。
可以杀死常规线程yourThread.interrupt()
然后在你的主题中你会做类似
的事情while(!Thread.currentThread().isInterrupted()) {
// ...
}