una smart samsung quitar publicidad programa play philips para pantalla movil los instalar iconos emergente eliminar desde desbloquear dela crear como cero celular app aplicaciones android android-activity android-service

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



programa para crear aplicaciones android (4)

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.


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

<application android:allowBackup="true" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <service android:name="com.whatever.myservice.MyService"> <intent-filter> <action android:name="com.whatever.myservice.MyService" /> </intent-filter> </service> </application>

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".


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.


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 .


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

<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>

Simplemente declare su Service como declarado normalmente.