何时是终止线程的最佳时间以及如何终止线程?
When is the best time to kill a Thread and How?
我有一个 activity,它有一个 class,它扩展了 SurfaceView 并实现了 Runnable 以不断地在 Canvas 对象上绘制。我意识到当我想切换activity并杀死当前的线程时,即使我调用finish()
,线程也不会自行销毁。因此,我想知道何时是销毁该线程的最佳时间(可能在 onDestroy()
方法中?),更重要的是如何销毁该线程?谢谢。
不,因为在 activity 结束时并不总是调用 onDestroy。最好的办法是在 onStop() 中终止线程,并在 onStart() 中始终启动线程。
这样当你的 activity 处于后台时线程将永远不会 运行 并且在关闭时将被杀死。
杀死一个线程取决于你使用的是什么类型的线程。可以用
杀死常规线程
yourThread.interrupt()
然后在你的线程中你会做类似的事情
while(!Thread.currentThread().isInterrupted()) {
// ...
}
我有一个 activity,它有一个 class,它扩展了 SurfaceView 并实现了 Runnable 以不断地在 Canvas 对象上绘制。我意识到当我想切换activity并杀死当前的线程时,即使我调用finish()
,线程也不会自行销毁。因此,我想知道何时是销毁该线程的最佳时间(可能在 onDestroy()
方法中?),更重要的是如何销毁该线程?谢谢。
不,因为在 activity 结束时并不总是调用 onDestroy。最好的办法是在 onStop() 中终止线程,并在 onStart() 中始终启动线程。
这样当你的 activity 处于后台时线程将永远不会 运行 并且在关闭时将被杀死。
杀死一个线程取决于你使用的是什么类型的线程。可以用
杀死常规线程yourThread.interrupt()
然后在你的线程中你会做类似的事情
while(!Thread.currentThread().isInterrupted()) {
// ...
}