在我的程序中,我同时启动一个线程和进度对话框。我想在按下“返回”后停止线程。但程序只停止我的对话框。我尝试使用以下代码:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
if (runner != null)
stopThread();
return true;
}
return super.dispatchKeyEvent(event);
}
@Override
public void onBackPressed(){
if (runner != null)
stopThread();
}
结果是我只能在没有任何对话框仍在工作时停止线程,如何“选择”后退动作或者如何在对话框解除时同时停止线程?
答案 0 :(得分:1)
使用setOnCancelListener
作为对话框,或者如果是自定义对话框,则覆盖OnBackPressed
,然后停止方法内的线程。