gpt4 book ai didi

android - 如何停止后台线程, `interupt` 不工作

转载 作者:行者123 更新时间:2023-11-30 02:03:57 24 4
gpt4 key购买 nike

考虑这个例子:

Thread thread = new Thread(new Runnable() {
public void run() {
// Sleep for 5000ms
// Show toast message
}
});

现在我将在单击 MainActivity 中的按钮时启动此线程,然后在按下后退按钮时立即退出该 Activity ,但在覆盖方法 onBackPressed 中实现了以下代码:

If(thread != null)
thread.interupt();
finish();

几秒钟后显示 toast 消息,这是为什么?

最佳答案

interrupt,清除线程的interrupt 状态并导致抛出InterruptedException。因此,如果您的线程处于休眠状态,并且当它处于休眠状态时,您调用 interrupt,它将被唤醒,并且执行流程将从 catch block 后面的指令继续。假设你有一些非常简单的东西,比如:

public void run() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackThreace();
}
runOnUiThread(TOAST);
}

public void run() {
while(true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackThreace();
}
runOnUiThread(TOAST);
}
}

即使您调用了 interrupt(),两者都会显示 Toast

关于android - 如何停止后台线程, `interupt` 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31043103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com