¿Es posible definir un receptor de difusión como una clase interna en el archivo de manifiesto?

Quiero crear un receptor de difusión como una clase interna en mi actividad principal. Pero tengo problemas para definir el receptor de difusión en el archivo manifiesto xml, porque Android no puede encontrarlo.

Código:

public class MyActivity extends Activity{ ... public class Receiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { .... } } ... } 

Manifiesto:

      

Intenté con:

  • .org.danizmax.myapp.MyActivity $ Receiver
  • org.danizmax.myapp.MyActivity $ Receiver
  • .MyActivity $ Receiver
  • .Receptor

Vi que otros también tenían problemas similares, pero no encontraron ninguna respuesta.

Entonces, ¿es posible? Si no, ¿cuál es la mejor manera de usar receptores de radiodifusión?

¡Gracias!

Sí, es posible.

El receptor android: name debería ser similar a .path.to.class.MyClass$MyInnerClass

Si quieres hacer esto con una clase interna no estática , no puedes hacerlo a través de AndroidManifest.xml. Sin embargo, puede registrar dinámicamente el BroadcastReceiver: Receiver como clase interna en Android

La mejor forma de utilizar BroadcastReceiver sería convertirlo en su propia clase. De esta forma, el código está mejor organizado y es posible reutilizarlo.