¿Cómo puedo enviarBroadcast (intención) de myDialog y recibir en myActivity?

Por lo tanto, estoy tratando de obtener una manija en BroadcastReceivers y filtros de intención. Tengo un cuadro de diálogo personalizado que crear en MyActivity. En el cuadro de diálogo, tengo un botón. Cuando se hace clic en el botón, quiero enviar una emisión que reciba el receptor de MyActivity. Esto es lo que tengo ahora mismo:

//MyActivity.java class myActivity extends Activity { //MyDialog dialog initialized in onCreate ... private class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //toast "Broadcast received" } } } //MyDialog.java class MyDialog extends Dialog { //m_context = incoming context from MyActivity @Override protected void onCreate(Bundle savedInstanceState) { Button button1 = (Button)findViewById(R.id.button1); button1.setOnClickListener(new View.OnCLickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction("android.intent.action.RUN"); m_context.sendBroadcast(intent); } }); } } //AndroidManifest.xml <activity android:name=".MyActivity" /> <receiver android:name="MyReceiver" android:enabled="true"> <intent-filter > <action android:name="android.intent.action.RUN"/> </intent-filter> </receiver> 

Cuando presiono button1, la aplicación se bloquea. ¿Puede alguien dirigirme en la dirección correcta?

En MyActivity hacer algo como esto:

 private BroadcastReceiver _refreshReceiver = new MyReceiver(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... IntentFilter filter = new IntentFilter("SOMEACTION"); this.registerReceiver(_refreshReceiver, filter); } @Override public void onDestroy() { super.onDestroy(); this.unregisterReceiver(this._refreshReceiver); } 

Y para invocar broadcast

 Intent in = new Intent("SOMEACTION"); sendBroadcast(in); 

Probablemente sería mucho más fácil registrar su receptor en código en el método onResume de su actividad (y unregiser en onPause).

 BroadcastReceiver rec = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { //Do stuff } }; IntentFilter filter = new IntentFilter("android.intent.action.RUN"); registerReceiver(rec, filter); 
  • Evitar que DialogFragment se rechace cuando se hace clic en el botón
  • Diálogo personalizado independiente de la versión de la plataforma con el icono, el título y los botones estándar
  • ¿Cómo obtener el tamaño del diálogo?
  • Cómo obtener la alerta predeterminada Dialog en android tiene un tema negro
  • No puedo ver el progreso de spinner en ProgressDialog en Lollipop
  • Obtener contexto dentro de onClick (DialogInterface v, int buttonId)?
  • Pantalla completa DialogFragment se superpone con StatusBar
  • Mostrar diálogo en fragmento android
  • Añadir desplazamiento rápido a una lista de desplazamiento AlertDialog.Builder
  • En Android, se muestra cómo detectar un diálogo del sistema (opciones de energía, aplicaciones recientes, batería baja ...).
  • AlertDialog.Builder abre otro AlertDialog.Builder
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.