M0286_Libro Curso
Android
Debemos darnos cuenta que onResume() y onPause() son las que delimitan la parte útil del ciclo de vida. Desde onResume() hasta onPause() , la actividad no solo es visible, sino que además, va a tener el foco de la acción y el usuario va a poder interactuar con ella. Y por último, tenemos que saber que el proceso que mantiene a esta Activity puede ser eliminado únicamente cuando se encuentra en onPause() o en onStop() , es decir, cuando no tiene el foco de la aplicación. Android nunca eliminará procesos con los que el usuario está interactuando en ese momento. Si se ha eliminado el proceso, el usuario no tiene por qué saber de dicha situación e incluso podría volver hacia atrás y querer usarlo de nuevo. Entonces el proceso se restaura gracias a una copia y vuelve a estar activo como si no hubiera sido eliminado. Además, la Activity puede haber estado en segundo plano, invisible, y entonces es despertada pasando por el estado onRestart() .
La idea importante con la que quedarse es que una Activity que esté pausa da o detenida (tras onPause() u onStop()) puede ser destruida por el sistema sin previo aviso, por lo que deberemos encargarnos de guardar antes la información necesaria (durante onFreeze() y onPause().
Pero, ¿qué ocurre en realidad cuando no existen recursos suficientes? Está claro que los recursos son siempre limitados y dependen, además, de cada dispositivo. En el momento en el que Android detecta que no hay los recursos necesarios, éste analizará los procesos existentes en ese momento y eliminará los que sean menos prioritarios para poder liberar sus recursos. Para los procesos en segundo plano, existe una lista llamada LRU ( Least Recently Used ). En esta lista se marca el proceso que va a ser eliminado, dependiendo del tiempo que está sin utilizarse. Los primeros que se eliminan, son aquellos que llevan más tiempo sin usarse. Así el sistema se asegura de mantener siempre vivos los últimos procesos que han sido usados. Si el usuario regresa a una actividad que estaba dormida, el sistema simplemente la despierta. En este caso, no es necesario recuperar el estado guardado porque el proceso todavía existe y mantiene el mismo estado. Sin embargo, cuando el usuario quiere regresar a una aplicación cuyo proceso ya no existe porque ha sido eliminado por Android, ya que se necesitaba liberar sus recursos, Android lo crea de nuevo y utiliza el estado previamente guardado para poder restaurar una copia fresca del mismo. Como ya se ha explicado anteriormente, el usuario no percibe esta situación ni conoce si el proceso ha sido eliminado o está dormido. 1.4.1.3. Intent La fuerza de Android radica en la forma que tiene de traducir la Web en aplicaciones móviles. Es la base de su funcionamiento y de la forma de interactuar el usuario con el dispositivo móvil. Hablando a grandes rasgos, el poder de internet radica en que “ todo se encuentra a un clic de distancia ”.
50
Made with FlippingBook - Online catalogs