Tengo Actividad que inicia AsyncTask. La actividad puede mostrarse en orientación Vertical u Horizontal. Cuando se cambia la orientación, la actividad se destruye y se recrea. La tarea continúa funcionando sin importar cuántas veces se cambie la orientación. También devuelve los resultados a la actividad con éxito (de acuerdo con la respuesta de CommonsWare aquí http://goo.gl/WF1yW).¿Se está destruyendo la actividad porque cambió la orientación o porque la aplicación se está cerrando?
Lo que quiero lograr es: cuando la actividad se destruye porque la aplicación se está cerrando - la tarea debe cancelarse. Sin embargo, cuando la actividad se destruye debido a un cambio de orientación , la tarea NO se debe cancelar.
Básicamente la pregunta es cómo distinguir entre los dos casos: la aplicación está cerrando/cambio de orientación. En ambos casos se llama al método onDestroy() y no hay una manera fácil de comprobar algo como esChangingOrientation() ...
P.S. También puedo considerar un enfoque totalmente diferente si es necesario.
Gracias! Eso es casi exactamente lo que estoy haciendo. Utilizo onRetainNonConfigurationInstance() para almacenar la referencia al hilo durante el Recreación de la actividad. Es un poco desafortunado que haya dos desventajas en esto ... Lo publicaré en una nueva respuesta. – Stan
¿Por qué se acepta esta respuesta? La pregunta era cómo distinguir entre el cambio de configuración y la terminación de la aplicación cuando se llama a 'onDestroy'. Y solo está diciendo cómo obtener un objeto previamente guardado. Creo que la respuesta de Mina Fawzy es más apropiada. Además, tenga en cuenta que 'onDestroy' no garantiza que se invoque. – Storix