0

私のプログラムでは、スレッドと進行状況ダイアログを同時に開始します。「戻る」を押した後にスレッドを停止したい。しかし、プログラムは私のダイアログボックスを止めるだけです。次のコードで試しました:

@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();
}

その結果、ダイアログボックスがまだ機能していない場合にのみスレッドを停止できます。バックアクションを「選択」するにはどうすればよいですか、またはダイアログボックスが閉じると同時にスレッドを停止するにはどうすればよいですか?

4

1 に答える 1

1

ダイアログに使用するsetOnCancelListenerか、カスタム ダイアログの場合OnBackPressedはメソッド内のスレッドをオーバーライドして停止します。

于 2012-09-08T10:13:45.570 に答える