Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Dos servicios con el mismo filtro intención

Tengo dos aplicaciones instaladas en mi dispositivo, cada uno con un componente del servicio en él y estos dos servicios tiene la misma declaración del filtro de la intención, como esto:

<intent-filter> <action android:name="com.example.intent.action.SHOW"/> </intent-filter> 

Y comienzo el servicio de esta manera:

  • Android NDK R8E falta stdlib.h
  • Android simular el golpe rápido
  • Cómo escribir List <> en paquete
  • Zoom en los sitios web en android sdk emulator
  • ¿De dónde puedo importar la configuración de la versión anterior de Android Studio?
  • ¿Cómo funcionan las animaciones de Android bajo el capó?
  •  Intent intent = new Intent(); intent.setAction("com.example.intent.action.SHOW"); startService(intent); 

    Encontré que uno de estos dos servicios comenzó, pero no estoy seguro de cómo sucedió esto. Como sabemos, si escribimos dos actividades con la misma declaración del filtro de la intención, un diálogo será poped para arriba y dejó que el usuario elige una actividad para terminar La acción. ¿Qué me confunde es que cómo Android elige el servicio que se iniciará en estos que tiene los mismos filtros intención, ¿cuál es la estrategia de tomar esta decisión?

    ¡Gracias por adelantado!

    actualizar:
    Yury tiene razón, aquí hay un fragmento de código de frameworks / base / services / java / com / android / server / pm / PackageMangerService.java en ICS:

     public ResolveInfo resolveService(Intent intent, String resolvedType, int flags) { List<ResolveInfo> query = queryIntentServices(intent, resolvedType, flags); if (query != null) { if (query.size() >= 1) { // If there is more than one service with the same priority, // just arbitrarily pick the first one. return query.get(0); } } return null; } 

    Como podemos ver, si hay más de un servicio coincide con la intención solicitada, Android elegirá arbitrariamente uno para comenzar. Pero, el servicio que realmente se inicia es inesperado.

  • Renombrar solo el nombre de la APP en Android IDE Eclipse
  • Cómo pasar el doble valor a una vista de texto en Android
  • Android: ¿Cómo acceder a una sola base de datos de múltiples actividades en la aplicación?
  • Android Gyroscope tutorial o código de ejemplo
  • Modo sin conexión para la aplicación de Android con google maps api
  • Cómo generar el gesto de zoom / pellizco para probar para Android
  • 3 Solutions collect form web for “Dos servicios con el mismo filtro intención”

    Si hay más de un servicio con el mismo filtro de intenciones, el sistema operativo Android selecciona uno de estos servicios y le pasa la intención.

    Si hay más de 1 Servicio con Filtro de Intención coincidente, se seleccionará el que tenga mayor prioridad. Si hay varios servicios que tienen prioridad más alta – que un servicio "al azar" será escogido.

    Aquí está el pedazo de código que asegura que el primer artículo tiene prioridad más alta:

    https://github.com/android/platform_frameworks_base/blob/master/services/java/com/android/server/IntentResolver.java#L320

    ¿Es posible tener más de un servicio manejando una intención?

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.