Inicie la aplicación Android sin actividad principal e inicie el servicio al iniciar la aplicación

Tengo el siguiente escenario en mi aplicación. No hay UI en mi aplicación; en cambio, hay un Servicio que se inicia al arrancar y se ejecutará continuamente.

¿Cómo puedo configurar mi archivo 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 translúcida para comenzar el servicio.

Dijiste que no querías utilizar una actividad translúcida, pero esa parece ser la mejor manera de hacerlo:

  1. En su Manifiesto, establezca el tema Actividad en Theme.Translucent.NoTitleBar .
  2. No se moleste con un diseño para su Actividad, y no llame a setContentView() .
  3. En su Actividad onCreate() , inicie su Servicio con startService() .
  4. Salga de la actividad con finish() una vez que haya comenzado el servicio.

En otras palabras, tu actividad no tiene que ser visible; simplemente puede asegurarse de que su Servicio se esté ejecutando y luego salir, lo que suena como lo que quiere.

Recomiendo 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 ícono de iniciador que parece no hacer nada cuando lo presiona.

Sí, puede hacerlo creando un BroadcastReceiver que llame a su Service cuando se inicie su Aplicación. Aquí hay una respuesta completa dada por mí.
Android: inicia el servicio al arrancar

Si no quiere ningún ícono / iniciador para su Aplicación, puede hacerlo también, simplemente no cree ninguna Actividad con

     

Simplemente declare su Service como declarado normalmente.

Android Studio versión 2.3

Puede crear un Servicio sin una Actividad Principal siguiendo unos simples pasos. Podrás instalar esta aplicación a través de Android Studio y depurarla como una aplicación normal.

Primero, crea un proyecto en Android Studio sin actividad. Luego crea tu clase de servicio y agrega el servicio a tu AndroidManifest.xml

        

Ahora, en el menú desplegable junto al botón “Ejecutar” (flecha verde), vaya a “editar configuraciones” y en “Opciones de lanzamiento”, seleccione “Nada”. Esto le permitirá instalar su Servicio sin Android Studio quejándose de no tener una Actividad Principal.

Una vez instalado, el servicio NO se ejecutará, pero podrá iniciarlo con este comando adb shell …

 am startservice -n com.whatever.myservice/.MyService 

Puede verificar que se está ejecutando con …

 ps | grep whatever 

Todavía no lo he intentado pero es probable que también Android Studio inicie automáticamente el servicio. Esto se haría en ese menú “Editar Configuraciones”.

La razón para hacer una aplicación sin actividad o servicio puede ser hacer una aplicación de widgets que no necesita ser iniciada.
Una vez que comienzas un proyecto, no crees ninguna actividad. Después de crear el proyecto, simplemente haz clic en ejecutar. Android studio dirá No default activity found .

Haga clic en Editar configuración y en la opción de opción de inicio configure el valor de Iniciar en Nada . A continuación, haz clic en Aceptar y ejecuta la aplicación. No se mostrará ninguna aplicación en el menú de aplicaciones .