Iniciar Broadcast Receiver de una actividad en android

Me gustaría iniciar un receptor de difusión de una actividad. Tengo un archivo de Second.java que extiende un receptor de la difusión y un archivo de Main.java del cual tengo que iniciar el receptor de la difusión. También intenté hacer todo en Main.java como sigue pero no sabía definir en archivo de manifiesto …

Main.java:

public class Main extends Activity { /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String rec_data = "Nothing Received"; private BroadcastReceiver myReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if( intent.getStringExtra("send_data")!=null) rec_data = intent.getStringExtra("send_data"); Log.d("Received Msg : ",rec_data); } }; } protected void onResume() { IntentFilter intentFilter = new IntentFilter(); //intentFilter.addDataType(String); registerReceiver(myReceiver, intentFilter); super.onResume(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); this.unregisterReceiver(this.myReceiver); } } 

Si no puedo hacer todo en una clase como la anterior, ¿cómo puedo llamar al Broadcast Receiver de Main.java? ¿Puede alguien por favor, hágamelo saber dónde lo estoy haciendo mal? ¡Gracias!

Use esto para enviar una difusión personalizada:

Defina un nombre de acción:

 public static final String BROADCAST = "PACKAGE_NAME.android.action.broadcast"; 

Receptor del registro de AndroidManifest.xml:

 <receiver android:name=".myReceiver" > <intent-filter > <action android:name="PACKAGE_NAME.android.action.broadcast"/> </intent-filter> </receiver> 

Registrar Reciver:

 IntentFilter intentFilter = new IntentFilter(BROADCAST); registerReceiver( myReceiver , intentFilter); 

Envíe la transmisión de su actividad:

 Intent intent = new Intent(BROADCAST); Bundle extras = new Bundle(); extras.putString("send_data", "test"); intent.putExtras(extras); sendBroadcast(intent); 

SU transmisor de difusión:

 private BroadcastReceiver myReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Bundle extras = intent.getExtras(); if (extras != null){ { rec_data = extras.getString("send_data"); Log.d("Received Msg : ",rec_data); } } }; 

Para obtener más información sobre Difusión personalizada, consulte Intenciones personalizadas y Difusión con receptores

Compruebe este tutorial aquí obtendrá toda la ayuda acerca de la emisión, incluyendo cómo iniciar el servicio desde la actividad o viceversa

http://www.vogella.de/articles/AndroidServices/article.html

Compruebe esta respuesta:

https://stackoverflow.com/a/5473750/928361

Creo que si no especificas nada en el IntentFilter , debes decir la intención de la clase del receptor.

Para eso tienes que transmitir una intención para el receptor, ver el código de abajo: –

 Intent intent=new Intent(); getApplicationContext().sendBroadcast(intent); 

Puede definir la acción y otras propiedades de Intent y puede transmitir utilizando el contexto de la aplicación, independientemente de la acción de intención establecida aquí que tenga que definir en el archivo AndroidManifest.xml con la etiqueta del receptor.

  • El receptor de reinicio no funciona en los teléfonos xiaomi
  • Android se comunica entre la actividad y el receptor de radiodifusión
  • Receptor de difusión para detectar el inicio de la aplicación
  • Utilizar el receptor de difusión para capturar la llamada entrante, onReceive no activado?
  • Android BroadcastReceiver no funciona después de la instalación
  • Iniciar actividad marcando un número
  • Por qué algunos receptores de radiodifusión sólo pueden registrarse a través de Code o AndroidManifest
  • QueryBroadcastReceivers no encuentra los receptores registrados con registerReceiver
  • Llamar a SetContentView () desde el receptor de difusión
  • El BroadcastReceiver para la intención ACTION_MEDIA_BUTTON se activa TWICE por clic en MediaButton
  • Android BroadcastReceiver en el inicio - sigue funcionando cuando la actividad está en segundo plano
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.