Сила остановить блокировку читать AsyncTask

У меня есть AsyncTask в моем приложении:

public class myActivity extends Activity { private static Socket mySocket; private static InputStream myInputstream; private AsyncTask task; private boolean connected = false; @Override protected void onCreate(Bundle savedInstanceState) { ... task = new UpdateTask().execute(); ... } private class myTask extends AsyncTask<Void, String, String> { @Override protected String doInBackground(Void... v) { if(!connected) { try { mySocket = new Socket(); mySocket.connect(new InetSocketAddress(MYIP, MYPORT)); myInputstream = mySocket.getInputStream(); connected = true; } catch(IOException e) { ... } } while(connected && !isCancelled()) { byte[] readbyte = new byte[1024]; try { myInputstream.read(readbyte); } catch (IOException e) { ... } ... } return null; } ... } 

И я хочу остановить task AsyncTask, когда я закрываю приложение: (нажмите Backton putton). Я попробовал ответить здесь Android – Отменить AsyncTask Сильно проверить isCancelled()

  @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK) { task.cancel(true); mySocket.close(); finish(); } return super.onKeyDown(keyCode, event); } 

Но кажется, что приложение будет блокироваться в myInputstream.read(readbyte) когда task.cancle(true) . Android выкинет мне приложение «перестанет отвечать». Как я могу заставить остановить блокировку чтения?

Solutions Collecting From Web of "Сила остановить блокировку читать AsyncTask"