在 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();
}
}