7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Corona SDK

Corona SDK: Manejando la suspensión en la aplicación

Scroll to top
Read Time: 4 mins

Spanish (Español) translation by Steven (you can also view the original English article)

Este tutorial rápido te enseñará cómo responder a los eventos clave del ciclo de vida de la aplicación, como la suspensión, la finalización y la reanudación. ¡Sigue leyendo para aprender más!


Este breve tutorial explicará cómo ayudar a los usuarios de iOS a poner sus aplicaciones Corona SDK en el fondo del sistema operativo. También demostrará cómo probar el envío de una aplicación en segundo plano desde el simulador Corona SDK.

Vamos a configurar un proyecto básico. Pon esto en tu archivo main.lua.

Utilizaremos un archivo config.lua simple.

Ahora que tenemos un proyecto básico configurado, hablemos sobre cómo funciona iOS con el Corona SDK. Por defecto, el Corona SDK no permite que las aplicaciones se pongan en segundo plano. Más bien, el comportamiento estándar es salir de la aplicación por completo. Cuando un usuario reanuda una aplicación de corona que ha sido pausada, la aplicación se reiniciará por completo a menos que cambiemos la configuración predeterminada. Abre tu archivo build.settings (si aún no existe, créalo). Agrega esta línea:

El mío ahora luce como esto:

Ahora, cuando un usuario reanuda la aplicación, volverá al punto en que la dejó. Esto a veces puede romper cosas en el código. Los temporizadores pueden desviarse y las animaciones pueden congelarse; por lo tanto, necesitamos una forma de administrar la aplicación cuando se ejecuta en segundo plano. Afortunadamente tenemos acceso al evento "applicationSuspend". iOS le dirá a CoronaSDK cuando se suspende la aplicación. A su vez, Corona SDK llamará al evento "applicationSuspend". Probemos esto con nuestra aplicación de demostración.

Aquí creamos una función para manejar eventos del sistema. Hay varios eventos del sistema, pero solo nos vamos a preocupar por el "applicationSuspend" por ahora. Entonces, si el evento que se pasa es "applicationSuspend", imprimiremos un buen mensaje en el terminal.

Ahora necesitamos agregar la función onSystem() como escucha para todos los eventos del "sistema". Recuerda llamar a Runtime:removeEventListener( "system", onSystem ) en tus aplicaciones si estás limpiando una escena. De lo contrario, seguirás esperando eventos del "sistema".

Ahora probémoslo. Cárgalo en el simulador. Para probar la aplicación en segundo plano en el simulador, ve a Hardware-> Suspender en el menú. También puedes usar el acceso directo Comando + Flecha abajo.

Corona SDK Backgroundr - Figure 1Corona SDK Backgroundr - Figure 1Corona SDK Backgroundr - Figure 1

Repite el proceso para reanudar la aplicación. Si todo funcionó correctamente, el mensaje "en segundo plano" debería aparecer en la terminal.

Hay otros eventos del sistema que también son útiles. Además de los eventos "applicationSuspend", también tenemos acceso a
"applicationStart", "applicationExit" y "applicationResume". Como probablemente puedas adivinar, estos se disparan cuando la aplicación se inicia por primera vez, se cierra por completo y se reanuda después de haber sido suspendida, respectivamente.

Estos eventos son tan simples de administrar como los primeros. Un ejemplo básico de todos los eventos tiene este aspecto (mira si puedes hacer que todos se activen en el simulador):

Ahora debes tener una buena idea de cómo manejar la suspensión de aplicaciones en el Corona SDK.

Corona SDK Backgroundr - Figure 2Corona SDK Backgroundr - Figure 2Corona SDK Backgroundr - Figure 2

Aquí está el código final:

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.