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