2009-09-08 11 views
7

Sé que el modelo de actividad de Android es un poco diferente de lo que generalmente considero una "aplicación".(android) ¿Cómo hacer algo en la aplicación "launch"?

Quiero hacer algo (en este caso, verificar algunas notificaciones en un servidor y mostrarlas si están disponibles) cuando mi aplicación se "inicia". ¿Cuál es una buena manera de lograr esto?

Probablemente no quiera hacerlo en una actividad de OnCreate, ya que cada actividad se puede crear varias veces; se llamaría al código con más frecuencia de la necesaria.

La aplicación también tiene múltiples puntos de entrada. ¿Tendría que duplicar el cheque en cada actividad?

Lo que estoy pensando hacer es configurar este código dentro del objeto Aplicación, junto con un indicador que rastrea si ya se ha llamado, y simplemente llamarlo desde cada Actividad onCreate().

¿Hay una manera mejor o más "adecuada" de hacer esto?

Respuesta

9

El derecha, forma aprobada por Android de hacer esto es:

  • Crear su propio android.app.Application clase
  • reemplazar el método onCreate
  • En el AndroidManifest.xml, cambiar el atributo android:name del application Elemento para el nombre de su clase
  • Ahora, cada vez que su aplicación se "inicia" (cualquiera de sus actividades se inicia para la f primera vez y ninguna otra instancia está viva) se llamará onCreate.

También puede ser útil el método onTerminate.

+0

Gracias - eso es probablemente lo que necesito, lo intentaré. –

+0

Whoa ... Nunca me di cuenta de que podrías hacer eso. Tiene sentido ahora que lo sé, sin embargo ... –

0

¿Puede simplemente verificar si el paquete pasó a onCreate() es null?

No es null "Si la actividad está siendo re-inicializado previamente después de ser cerrado ..."

0

Probablemente hay ningún daño en su puesta en onCreate; la actividad realmente solo se destruye cuando el sistema operativo necesita la RAM para otra cosa, no cuando el usuario va a otra aplicación.

EDITAR: También puede tener un Service that runs when the device gets booted up, también. Esta podría ser una mejor opción si también desea verificar cuándo se inicia la aplicación, ya que solo tendrá que llamar a context.startService desde Activity para ejecutar la verificación. Solo asegúrese de detenerlo cuando esté listo si no lo necesita para ser persistente.

+1

Bueno, hay algunos casos cuando se llama a onDestroy() en respuesta a acciones algo inocentes, como presionar el botón BACK o cambiar la orientación del dispositivo (a menos que se especifique lo contrario). Y solo en este último caso, el parámetro Bundle pasado a onCreate() NO es nulo. –

Cuestiones relacionadas