Actividad de Android sin GUI

He creado una actividad que sólo está destinada a ser lanzada desde un enlace (utilizando un filtro de intenciones). No quiero que esta actividad tenga una GUI – sólo quiero que inicie un servicio y poner una notificación en la barra. He intentado poner el filtro de la intención para el acoplamiento en mi servicio, pero ése no trabaja. ¿Hay algo mejor que hacer que responda a los filtros de intención – o puedo hacer que mi actividad no tenga una GUI?
Lo siento si estoy siendo confuso, Isaac

Su mejor apuesta parece estar utilizando un BroadcastReceiver . Puede crear un nuevo BroadcastReceiver que escuche la intención de activar su notificación e iniciar su servicio de esta manera:

 public class MyIntentReceiver extends BroadcastReceiver { @Override public void onReceive(Context _context, Intent _intent) { if (_intent.getAction().equals(MY_INTENT)) { // TODO Broadcast a notification _context.startService(new Intent(_context, MyService.class)); } } } 

Y puede registrar este IntentReceiver directamente en el Manifiesto de la aplicación sin tener que incluirlo dentro de una Actividad:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.domain.myapplication"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <service android:enabled="true" android:name="MyService"></service> <receiver android:enabled="true" android:name="MyIntentReceiver"> <intent-filter> <action android:name="MY_INTENT" /> </intent-filter> </receiver> </application> </manifest> 

Respondiendo a la respuesta anterior, no debe utilizar un receptor de difusión.

En la misma situación, lo que hice fue declarar el tema así:

 <activity android:name="MyActivity" android:label="@string/app_name" android:theme="@android:style/Theme.NoDisplay"> 

No estoy seguro si un servicio funcionaría, pero un receptor de difusión definitivamente no lo haría. Los URL se lanzan usando startActivity (). Los receptores de difusión no pueden responder a esto.

http://developer.android.com/reference/android/content/BroadcastReceiver.html

FTA: Tenga en cuenta que, aunque la clase Intent se utiliza para enviar y recibir estas emisiones, el mecanismo de difusión de intención aquí es completamente distinto de los Intentos que se utilizan para iniciar las actividades con Context.startActivity (). No hay manera de que un BroadcastReceiver vea o capture los Intents usados ​​con startActivity (); Del mismo modo, cuando transmita una Intención, nunca encontrará o iniciará una Actividad.

Utilice Servicio. Trabajo definitivamente. Al hacer clic en el programa, haría su trabajo sin ninguna GUI. Utilizar pendintgintent … getService (MySerice.class ….). A continuación, cree una nueva clase MyService extendiendo la clase Service. Dentro de MyService.class, invalide onStart () y haga lo que quiera hacer.

  • Conexión a un servicio web desde android - AsyncTask o Service?
  • Gestión de devoluciones de llamada del servicio remoto
  • Depurar servicio de fondo en android utilizando intelliJ
  • NotificationCompat y setFullScreenIntent ()
  • NsdManager no resuelve varios servicios descubiertos
  • Grabación de errores en vídeos android
  • Reconocimiento de voz como servicio de fondo
  • Depuración de fallos de servicio
  • ¿Hay una alternativa onBackPressed () para un servicio?
  • Acceda a Running service y llame a su método?
  • Gran uso de memoria en las notificaciones
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.