如何在按下主页按钮时终止线程

时间:2016-07-12 15:30:12

标签: java android multithreading

首先,我知道有很多与此相关的问题,但我还没找到我需要的东西。

在几乎每个答案中,他们都说你应该在run()方法(我有)中有一个运行循环,当你想杀死你的Thread时,你只需要设置{{1} } booleanwhile()的条件。我理解这一点,但在我的情况下,每次迭代需要花费很多秒,因为它与false有关。基本上,这个GUI Thread等待用户按下按钮然后它会产生更多的东西,比如再现一些声音。

所以我的问题是,无法停止threadthread设置为boolean因为它等待用户,所以当用户按下主页按钮时{ {1}}继续他的执行,(等待用户的输入)和一段时间后(当用户按下按钮的时间到期时)再现声音。

还有另一种方法可以杀死false方法中的Thread或类似的东西吗?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);           
}

然后,按下主页按钮会触发以下事件:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {     

    if(keyCode == KeyEvent.KEYCODE_HOME)
    {
       //Thread shutdown
    }
});

希望有所帮助