Desidero sapere qual è il modo migliore per arrestare un task async in esecuzione.Annulla/arresta attività asincrona Android
Ho provato
@Override protected void onCancelled() {
super.onCancelled();
mTask.cancel(true);
}
Ho anche provato
asyncTaskObject.cancel(true);
Questo funziona specialmente quando associato a un evento.
Ma supponiamo che lo scenario sia --- ci sono 4 AsyncTask. Prima chiama la seconda, la seconda chiama la terza e la terza chiama la quarta. Quando l'utente inserisce l'attività non c'è una finestra di dialogo. Altrimenti avremmo potuto usare il metodo onCancel lì. Quando l'utente fa clic in qualsiasi punto della pagina, la finestra di dialogo viene visualizzata se l'utente non fa clic in nessun punto, quindi non viene visualizzata alcuna finestra di dialogo, ma l'attività asincrona continua a funzionare in background. Supponiamo che l'utente faccia clic sul pulsante "indietro" o sull'icona di navigazione sul home page user.is tolto dall'attività corrente. Ma l'attività asincrona continua a funzionare in background e alla fine l'app si arresta in modo anomalo. Ho usato il metodo cancel in onBackPressed. Ma il problema è che non puoi essere sicuro di quale attività è in esecuzione e di nuovo i carsh delle app.
Qual è la via d'uscita?
'mTask' potrebbe essere' null' segui questo http://stackoverflow.com/a/34586053/1318946 –