作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑这个例子:
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/
考虑这个例子: Thread thread = new Thread(new Runnable() { public void run() { // Sleep for 5000m
我最近间歇性地从 excel 退出时收到“代码执行已被中断”消息。而且它的频率正在增加。 End 允许我离开 excel,但是一旦我收到消息,我的机器必须重新启动以允许 excel 再次打开并运行宏。
当我的iPhone被锁定时,为什么我在Objective c中遇到此错误并且功能不起作用。 最佳答案 这些错误代码的说明: errSSLInternal = -9810,
我是一名优秀的程序员,十分优秀!