with start example creating create activity binding android-activity android-service android

binding - start - Enlace de un servicio a un android.app.Activity vs Enlace a un android.app.AplicaciĆ³n



creating a service android (2)

La respuesta de @Jere.Jones no es 100% correcta. Tiene una clase de instancia de aplicación por proceso. Así que si ejecuta su servicio en un proceso separado, por ejemplo, con

<service android:name=".engine.NetworkService" android:exported="false" android:process=":xxxService" />

tiene dos Instancias de Aplicación separadas, lo que significa que si necesita "mantener un estado" debe asegurarse de que no se cruce el Proceso, o debe usar IPC para sincronizar estos estados.

¿Hay alguna diferencia fundamental en vincular un servicio a un android.app.Activity vs vincularlo a un android.app.Application . Quiero vincular el servicio a una Application porque quiero mantener un estado / datos globales en la aplicación en lugar de duplicarlos en todas mis actividades .

Gracias.


No. No hay diferencia fundamental .

Dicho esto, la subclasificación de android.app.Application es un muy buen lugar para almacenar datos globales / estatales. Solo hay una instancia y todo lo que se deriva de Context tiene acceso a ella.

También estoy seguro de que vincular un servicio a una aplicación dará como resultado algunas vidas extrañas si no tienes cuidado. Lo que quiero decir es que a pesar de que su aplicación está fuera de la vista y no tiene actividades activas, su aplicación podría existir porque su servicio aún existe. Su servicio todavía existe porque su aplicación todavía existe. Tendría que cerrar manualmente el servicio en función de algún evento que no sea onDestroy.