APUNTES ANDROID
  • Introducción
  • Apuntes Linux
  • Apuntes Red Team
  • Apuntes Blue Team
  • Apuntes Python
  • Ricardev github
  • Escribiendo tu primera App
    • Instalar Android Studio
    • Proyecto
    • Ejecutar una App
    • Anatomía del Proyecto
      • Gradle scripts
      • AndroidManifest.xml
      • Java
      • Res
    • Componentes de una App
      • Activities
      • Fragments
      • Views y ViewGroups
      • Services
      • Broadcast Receivers
      • Intents
      • Content Provider
      • Widgets
    • Paradigmas de diseño
      • Views
        • Pallete Texts
          • TextView
          • EditText
          • AutoCompleteTextView
        • Pallete Buttons
          • Button
          • ImageButton
          • Chip y ChipGroup
          • RadioButton y RadioGroup
          • CheckBox
          • ToggleButton
          • Switch
          • FloatingActionButton
        • Pallete Widgets
          • ImageView
          • ShapeableImageView
          • WebView
          • VideoView
          • CalendarView
          • ProgressBar
          • SeekBar
          • RatingBar
          • SearchView
          • Divider
        • Custom Views
        • View Binding
      • Jetpack Compose
    • Layouts
      • FrameLayout
      • Linear Layout
      • Relative Layout
      • Constraint Layout
      • Table Layout
      • Grid Layout
    • Containers
      • Spinner
      • RecyclerView
      • CardView
      • ScrollView y HorizontalScrollView
      • ViewPager2
      • AppBarLayout y BottomAppBar
      • NavigationView y BottomNavigationView
      • Toolbar y MaterialToolbar
      • TabLayout y TabItem
      • ViewStub
      • etiquetas <include> y <merge>
Powered by GitBook
On this page
  • EMISIONES DE ANDROID
  • DEFINICIÓN
  • Broadcast Receivers en el manifiesto
  • Broadcast Receivers en el contexto
  1. Escribiendo tu primera App
  2. Componentes de una App

Broadcast Receivers

Explicación del concepto de Broadcast Receiver.

PreviousServicesNextIntents

Last updated 2 years ago

EMISIONES DE ANDROID

Todas las Apps de Android pueden recibir mensajes de emision (Broadcast messages) desde el sistema de Android u otras Aplicaciones. Para ello se utiliza el patrón de diseño de publicación y suscripción.

Estas emisiones se envían cuando ocurre un evento de interés.

El sistema de Android emite estos mensajes por ejemplo en los siguientes casos: batería por debajo del 15%, GPS activado / desactivado, modo avión activado / desactivado o conexión a una red WIFI entre otros.

Por otro lado, las Apps también pueden emitir este tipo de mensajes de manera personalizada cuando se ha dado una situación que puede afectar a otras Apps.

Las apps pueden registrarse para recibir emisiones específicas. Cuando se envía una emisión, el sistema redirige automáticamente las emisiones a las apps que se suscribieron para recibir ese tipo de emisión particular.

Por lo general, las emisiones pueden usarse como un sistema de mensajería entre apps y fuera del flujo de usuarios normal. Sin embargo, debes tener cuidado de no abusar de la oportunidad de responder a las emisiones y ejecutar tareas en segundo plano que puedan contribuir a ralentizar el rendimiento del sistema.

Como ejemplo vemos los Broadcast Messages de la App de la cámara que se correspondían con ACTION_NEW_PICTURE y ACTION_NEW_VIDEO.

Estos mensajes que emitía la App de la cámara fueron eliminados en Android 7.0 debido a que las Aplicaciones se despertaban para responder a dicho mensaje y generaban problemas de rendimiento, llegando a afectar al buen funcionamiento de la Cámara.

Por este motivo es fundamental no abusar de las respuestas ante estos Broadcast Messages.

DEFINICIÓN

Los Broadcast Receivers son los elementos declarados en la App que se suscriben a un tipo específico de Broadcast Message y se mantienen a la escucha. Se pueden dar dos tipos:

Broadcast Receivers en el manifiesto

Si declaras un receptor de emisión en tu manifiesto, el sistema inicia la app (si aún no está en ejecución) cuando se envía la emisión.

Si tu app se orienta a la API nivel 26 o una versión posterior, no puedes usar el manifiesto para declarar un receptor de emisiones implícitas (emisiones que no se orientan específicamente a tu app), excepto por algunas emisiones implícitas que están exentas de esa restricción.

Broadcast Receivers en el contexto

Los receptores registrados en el contexto reciben emisiones siempre que su contexto de registro sea válido.

Por ejemplo, si te registras en un contexto Activity, recibirás emisiones siempre y cuando no se elimine la actividad. Si te registras con el contexto de la aplicación, recibirás emisiones mientras la app esté en ejecución.

En la mayoría de los casos, puedes usar en su lugar.

tareas programadas
Descripción general de las transmisiones  |  Desarrolladores de Android  |  Android DevelopersAndroid Developers
Fuente: developer.android
Logo