Tengo el siguiente escenario en mi aplicación. No hay IU en mi aplicación; en su lugar, hay un servicio que se inicia al arrancar y se ejecutará continuamente.
¿Cómo puedo configurar mi archivo de manifiesto sin una actividad principal? ¿Puedo iniciar mi aplicación sin ninguna actividad? Y al iniciar mi aplicación, mi servicio debería comenzar. es posible?
No quiero hacer una Actividad traslúcida para iniciar el Servicio.
Respuestas:
Dijiste que no querías usar una actividad translúcida, pero esa parece ser la mejor manera de hacer esto:
Theme.Translucent.NoTitleBar
.setContentView()
.onCreate()
, inicie su Servicio constartService()
.finish()
una vez que haya iniciado el Servicio.En otras palabras, su actividad no tiene que ser visible; simplemente puede asegurarse de que su Servicio se esté ejecutando y luego salir, que suena como lo que desea.
Recomiendo encarecidamente mostrar al menos una notificación de Toast que indique al usuario que está iniciando el Servicio o que ya se está ejecutando. Es una experiencia de usuario muy mala tener un icono de lanzador que parece no hacer nada cuando lo presionas.
fuente
Sí, puede hacerlo simplemente creando un
BroadcastReceiver
que llame a suService
cuando se inicie su aplicación. Aquí hay una respuesta completa dada por mí.Android: iniciar el servicio al arrancar
Si no desea ningún icono / lanzador para su aplicación, puede hacerlo también, simplemente no cree ninguna actividad con
Simplemente declare su
Service
como declarado normalmente.fuente
Service
inicio, pero quiere saber cómo no tener un mainActivity
, pero simplemente asegúrese de que seService
esté ejecutando cuando se presiona el icono del iniciador.La razón para crear una aplicación sin actividad o servicio podría ser hacer una aplicación de widget de pantalla de inicio que no necesita iniciarse.
Una vez que inicie un proyecto, no cree ninguna actividad. Después de crear el proyecto, simplemente presione ejecutar. El estudio de Android dirá
No default activity found
.Haga clic en Editar configuración (desde el menú Ejecutar ) y en la parte de la opción Launch establezca el valor de Launch en Nothing . Luego haga clic en Aceptar y ejecute la aplicación.
( Dado que no hay actividad de iniciador, no se mostrará ninguna aplicación en el menú Aplicaciones ).
fuente
Android Studio versión 2.3
Puede crear un servicio sin una actividad principal siguiendo unos sencillos pasos. Podrás instalar esta aplicación a través de Android Studio y depurarla como una aplicación normal.
Primero, cree un proyecto en Android Studio sin una actividad. Luego cree su clase de servicio y agregue el servicio a su AndroidManifest.xml
Ahora, en el menú desplegable al lado del botón "Ejecutar" (flecha verde), vaya a "editar configuraciones" y dentro de las "Opciones de lanzamiento" elija "Nada". Esto le permitirá instalar su Servicio sin que Android Studio se queje de no tener una Actividad principal.
Una vez instalado, el servicio NO se ejecutará, pero podrá iniciarlo con este comando de shell adb ...
Puede comprobar que se está ejecutando con ...
No lo he intentado todavía, pero es probable que Android Studio también inicie el servicio automáticamente. Esto se haría en el menú "Editar configuraciones".
fuente