在 Android 中,线程的销毁通常有两种方法:
示例代码如下:
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
// 线程逻辑
}
}
});
// 在合适的时机调用线程的 interrupt() 方法来中断线程
thread.interrupt();
示例代码如下:
private boolean isRunning = true;
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (isRunning) {
// 线程逻辑
}
}
});
// 在合适的时机将标志位设为 false,退出线程的执行
isRunning = false;
需要注意的是,以上的方法只是退出线程的执行,线程对象本身并没有销毁。如果需要销毁线程对象,可以通过让线程对象为空来释放线程对象的引用。
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// 线程逻辑
}
});
// 使线程对象为空,释放线程对象的引用
thread = null;
另外,如果线程是在 Activity 或 Fragment 中创建的,还可以在销毁 Activity 或 Fragment 的回调方法中,通过调用线程的 interrupt() 方法或设置标志位来销毁线程。
@Override
protected void onDestroy() {
super.onDestroy();
// 在 Activity 销毁时中断线程的执行
if (thread != null) {
thread.interrupt();
}
}