をお読みください。 私はは、私は自分のアプリケーションでAsyncTaskを持ってAsyncTask
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK) {
task.cancel(true);
mySocket.close();
finish();
}
return super.onKeyDown(keyCode, event);
}
isCancelled()
をチェックするために、ここでAndroid - Cancel AsyncTask Forcefully答えをしようとしたが、task.cancle(true)
が呼び出されたときに、そのアプリケーションがmyInputstream.read(readbyte)
でブロックするようです。 Androidは「アプリは応答を停止します..」というポップアップを表示します。 ブロッキングの読み取りを強制的に停止するにはどうすればよいですか?
doInBackgroundで例外をキャッチしますか? InterruptedExceptionが存在するはずです。 – Fildor
@Fildor 'java.io.InterruptedIOException'でなければなりませんが、ストリームが中断をサポートしている場合に限ります。 – SpaceTrucker
あなたは「アプリケーションが 'myInputstream.read(readbyte)'でブロックするようです。あなたは本当にそれが事実ですか? – SpaceTrucker