Spanish [B4A] [Tutorial] Guia rápida del Ciclo de Vida de Android

bgsoft

Well-Known Member
Licensed User
Hola

Después de responder varias veces a esta pregunta, he decidido crear un “tutorial” guia rápida del Ciclo de Vida de Android. De esta forma si lo imprimes o lo capturas (adjunto imagen), de un vistazo lo tienes presente hasta que ya no lo necesites.

Para los que quieran profundizar mas hay un buen tutorial de Erel donde lo explica todo con mayor detalle:
http://www.basic4ppc.com/android/fo...ess-and-activities-life-cycle.6487/#post37980


ARRANCA LA APLICACIÓN -> Activity_Create (FirstTime = True) -> Activity_Resume
GIRAS LA PANTALLA -> Activity_Pause (Userclosed=False) -> Activity_Create (FirstTime = False) -> Activity_Resume
SALES MATANDO APLICACION CON Activity.Finish -> Activity_Pause (Userclosed=True)
SALES PULSANDO BOTÓN HARD BACK -> Activity_Pause (Userclosed=True)
SALES PULSANDO BOTÓN HOME (botón hard central) -> Activity_Pause (Userclosed=False)
VUELVES DESPUES DE PULSAR BOTÓN HOME -> Activity_Resume
LLAMAS A OTRO ACTIVITY DESDE Main -> Main va a Activity_Pause (Userclosed=False)
VUELVES DESDE OTRO ACTIVITY -> Main va a Activity_Resume
ENTRAS EN LA PANTALLA DE CONFIGURACION (PreferenceActivity library) -> Main va a Activity_Pause (Userclosed=False)
SALES DE LA PANTALLA DE CONFIGURACION (PreferenceActivity library) -> Main va a Activity_Resume
SALES PULSANDO EL BOTÓN DE APAGAR EL DISPOSITIVO -> Main va a Activity_Pause (Userclosed=False)
VUELVES DESPUES DE PULSAR BOTÓN DE APAGAR EL DISPOSITIVO -> Main va a Activity_Resume


Saludos
 

Attachments

Last edited:

bgsoft

Well-Known Member
Licensed User
Gracias Heppy

Si, se la he pedido a Erel, mayormente para que quede arriba y cualquiera nada mas entrar pueda verla en vez de buscarla. Es un "tutorial" mini, pero para los que empiezan de un vistazo pueden ver el ciclo de vida en vez de ponerse a buscar y traducir del original. Y con la imagen capturada que he añadido la puedes tener siempre a mano aunque no tengas conexion al foro. Espero que sea de ayuda.

Gracias por tu interes.

Saludos
 

entolium

Member
Licensed User
Muy bueno y útil.
¿Faltaría cuando pulsas "Atrás"?

Sugiero lo mismo pero con los servicios, que me estoy volviendo loco :D
 

bgsoft

Well-Known Member
Licensed User
Hola entolium

Cuando pulsas "atras", que supongo que te refieres al boton BACK hard del dispositivo, si no lo tienes controlado por codigo es el mismo caso que :
SALES MATANDO APLICACION CON Activity.Finish -> Activity_Pause (Userclosed=True)
Cuando tu pulsas atras, la aplicación va a Activity_Pause con Userclosed=True , asi que es el mismo caso, si crees que aclararia mas añadir ese comentario no tengo ningún inconveniente en hacerlo.

No se que problemas tienes con los servicios, quizas te ayude este post que respondí hace tiempo:
http://www.basic4ppc.com/android/fo...a-la-memoria-en-el-celular.35799/#post-210123

Y si no, aqui tienes un tutorial muy bueno:
http://developer.android.com/guide/components/services.html

Si aun asi sigues con problemas, abre un nuevo post y seguro que alguien te ayuda.

Saludos
 

Ivan Fernando Paz

Member
Licensed User
Hola

Después de responder varias veces a esta pregunta, he decidido crear un “tutorial” guia rápida del Ciclo de Vida de Android. De esta forma si lo imprimes o lo capturas (adjunto imagen), de un vistazo lo tienes presente hasta que ya no lo necesites.

Para los que quieran profundizar mas hay un buen tutorial de Erel donde lo explica todo con mayor detalle:
http://www.basic4ppc.com/android/fo...ess-and-activities-life-cycle.6487/#post37980


ARRANCA LA APLICACIÓN -> Activity_Create (FirstTime = True) -> Activity_Resume
GIRAS LA PANTALLA -> Activity_Pause (Userclosed=False) -> Activity_Create (FirstTime = False) -> Activity_Resume
SALES MATANDO APLICACION CON Activity.Finish -> Activity_Pause (Userclosed=True)
SALES PULSANDO BOTÓN HARD BACK -> Activity_Pause (Userclosed=True)
SALES PULSANDO BOTÓN HOME (botón hard central) -> Activity_Pause (Userclosed=False)
VUELVES DESPUES DE PULSAR BOTÓN HOME -> Activity_Resume
LLAMAS A OTRO ACTIVITY DESDE Main -> Main va a Activity_Pause (Userclosed=False)
VUELVES DESDE OTRO ACTIVITY -> Main va a Activity_Resume
ENTRAS EN LA PANTALLA DE CONFIGURACION (PreferenceActivity library) -> Main va a Activity_Pause (Userclosed=False)
SALES DE LA PANTALLA DE CONFIGURACION (PreferenceActivity library) -> Main va a Activity_Resume
SALES PULSANDO EL BOTÓN DE APAGAR EL DISPOSITIVO -> Main va a Activity_Pause (Userclosed=False)
VUELVES DESPUES DE PULSAR BOTÓN DE APAGAR EL DISPOSITIVO -> Main va a Activity_Resume


Saludos
Gracias
 

vbmundo

Well-Known Member
Licensed User
Hola Jesús,

Muchas Gracias por esta gran referencia que nos dejas y que me ha enseñado mucho..

La pregunta que quiero hacerte (por pura ignorancia, ya que llevo solo 1 mes con Basic4Android, el cual ya considero el SOFT mas alucinante que he comprado en mis mas de casi 30 años en desarrollo de Sistemas), es...

Que cosas pueden perderse de la Activity cuando se vuelve o cae en Resume ? es decir... hay que volver a ejecutar algo ? o podemos salir andando como si nada ?

En que casos y buenas prácticas tu usas Activity_resume ?

Por ahora lo que vi es que debo agregar...

B4X:
 If UserClosed=True Then Activity.Finish
Y ahora me explico porque muchas veces haciendo el Debug... a pesar de haber STOPEADO la prueba al relanzar me aparecia en la Activity anterior..

Saludos y los felicito por el enorme servicio que prestan...

si necesitan soporte de otros lenguajes los invito a mi foro VB-MUNDO www.foro.vb-mundo.com con mas de 100.000 usuarios registrados y mas de 13 años de historia.

Saludos
 

bgsoft

Well-Known Member
Licensed User
Hola Pablo

Que cosas pueden perderse de la Activity cuando se vuelve o cae en Resume ? es decir... hay que volver a ejecutar algo ? o podemos salir andando como si nada ?
Si miras el ciclo de vida, veras que cuando entres en Resume después de un Activity_Create , todo lo que tengas en variables locales lo perderas, y al pasar por el Activity_Create ejecutará el código que hayas puesto ahí.


En que casos y buenas prácticas tu usas Activity_resume ?
Auque te parezca un salir del paso, que no lo es, dependerá del tipo de aplicación, de que quiero hacer cuando entre en Resume en los casos que me interese (ya sabes que puede entrar por diferentes motivos) , asi que no tengo un decálogo de buenas prácticas para el Resume en general.


Por ahora lo que vi es que debo agregar...
If UserClosed=True Then Activity.Finish
Siempre que haces un Activity.Finish, el UserClosed=True :D, asi que no hace falta que lo vuelvas a hacer.
Está escrito arriba: SALES MATANDO APLICACION CON Activity.Finish -> Activity_Pause (Userclosed=True), tambien cuando pulsas BOTÓN HARD BACK

Saludos
 

vbmundo

Well-Known Member
Licensed User
Hola Pablo


Si miras el ciclo de vida, veras que cuando entres en Resume después de un Activity_Create , todo lo que tengas en variables locales lo perderas, y al pasar por el Activity_Create ejecutará el código que hayas puesto ahí.



Auque te parezca un salir del paso, que no lo es, dependerá del tipo de aplicación, de que quiero hacer cuando entre en Resume en los casos que me interese (ya sabes que puede entrar por diferentes motivos) , asi que no tengo un decálogo de buenas prácticas para el Resume en general.




Siempre que haces un Activity.Finish, el UserClosed=True :D, asi que no hace falta que lo vuelvas a hacer.
Está escrito arriba: SALES MATANDO APLICACION CON Activity.Finish -> Activity_Pause (Userclosed=True), tambien cuando pulsas BOTÓN HARD BACK

Saludos
Gracias Jesus, impecable como siempre !!
 

bgsoft

Well-Known Member
Licensed User
De nada Pablo

Creo que conforme te vayas integrando en el foro tu tambien responderas al resto, por que asi haras mejor el foro y de paso podrás ayudar a los nuevos que se incorporaran como tu y como es natural tienen sus dudas, como todos las hemos tenido y todos las tenemos.
Una de las cosas que siempre me quejé es que hay mucha información pero a veces no sabes donde buscar, de ahi a insistir de poner lo de [solucionado] por que eso nos ayuda a todos, tambien ayuda a Heppy que está haciendo un gran trabajo en su:
Indice temas con [Solucionado] (Ultimo: Abrir un link de Google Play desde una App de Android)

Y con el tiempo te daras cuenta que los que respondemos o intentamos que este foro sea mejor lo hacemos por el simple echo de ayudar, no cobramos un euro, y a veces como se ha comentado, te pegas bastante tiempo elaborando una respuesta y no te dan ni un like, que tampoco se busca, pero como mínimo saber con el [solucionado] que se le solucionó su pregunta.

No te agobies mucho, por que este Android no tiene nada que ver con el resto de SO que hayas visto, y veras que cuando has resuelto algo, en otro dispositivo no va :(, y como la tegnologia a nivel de dispositivos móviles esta en evolución constante, pues nunca llegas a enterarte de todo lo que quisieras, creo que al final escribiré un libro y lo titularé "El Android y la madre que lo parió" :D , es broma.

Saludos
 

vbmundo

Well-Known Member
Licensed User
Claro Jesus,

No solo pongo ahora [SOLUCIONADO] a mis temas, sino que ya he ayudado a muchos con pequeñas cosas... y en un tiempo podré contestar mas cosas que preguntar.

Se lo que es el espiritu de un foro.. tengo uno con 100.000 usuarios y hubo que trabajarlo muy a pulmón al comienzo.. ahora ya lleva 13 años de vida.

Este foro me dió todo lo que se de B4X.. que por ahora es el 1 % de lo que debo saber.. pero no le perderé pisada e iré publicando cada aplicación que haga.

Esa es buena.. crear una sección donde los usuarios publiquen sus Aplicaciones B4X y puedan ser vistas por otros usuarios.. incluso ir comentando como lograron tal o cual cosa.

Saludos
 
Top