我做了一個將字符串定期發送回主線程的線程。 和我把這個線程放在一些函數上。調用兩次時殺死線程
當我按下某個按鈕時,功能將被調用並完成工作。
問題是當我按下該按鈕兩次。
這兩個線程正在將它們的字符串發送到主線程。 (他們完全一樣的東西,但不同的字符串。)
但是,當線程再次啓動時,我不需要第一個線程。
他們有什麼辦法殺死第一個線程?
這是代碼。
private void speller_textbox(final String string){
final int strlen = string.length();
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
int cursor= 0;
while(cursor != strlen){
try{
Message message = Message.obtain();
message.obj = string.subSequence(0,cursor);
txt_handler.sendMessage(message);
cursor++;
Thread.sleep(100);
}catch (Exception e){
e.printStackTrace();
}
}
}
});
thread.start();
}
txt_handler位於主線程上。
問題如何確定是否有一個線程需要被殺死,或如何殺死它們,或兩者? –
好,都。我需要確定並殺死它。 –
你不會真的「殺死」線程。 'Thread'上有'stop'和'destroy'這樣的方法,但是它們被強烈的棄用。你所能做的只是中斷一個正在運行的線程,並以一種可以檢查中斷並儘快停止的方式實現它。 –