No se puede agregar ventana – token android.os.BinderProxy@42824 no es válido; ¿Está funcionando su actividad?

Tengo un remitente sms con pendingIntent y una vez que el sms envió se abre un diálogo. Aquí está el código del remitente de SMS

public final void sendSmsByManager(final String code) { progressDialog = new ProgressDialog(Registration.this); progressDialog.setTitle("Please wait"); progressDialog.setMessage("Sending SMS Verification Code..."); progressDialog.setCancelable(false); progressDialog.setCanceledOnTouchOutside(false); progressDialog.show(); String sent = "SMS_SENT"; PendingIntent sentPI = PendingIntent.getBroadcast(Registration.this, 2, new Intent(sent), 0); Registration.this.registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context arg0, Intent arg1) { switch (getResultCode()) { case Activity.RESULT_OK: // Toast.makeText(getBaseContext(), "SMS sent", // Toast.LENGTH_SHORT).show(); progressDialog.dismiss(); dialog_confirm(code,Registration.this); // saveRegistration(); break; case SmsManager.RESULT_ERROR_GENERIC_FAILURE: progressDialog.dismiss(); Toast.makeText(getApplicationContext(), "Generic failure", Toast.LENGTH_SHORT).show(); // Toast.makeText(getApplicationContext(), "code" + code, // Toast.LENGTH_SHORT).show(); status = "Generic failure"; break; case SmsManager.RESULT_ERROR_NO_SERVICE: progressDialog.dismiss(); Toast.makeText( myContext, "No service. Check mobile network connection." + "" + "", Toast.LENGTH_SHORT).show(); status = "No service"; break; case SmsManager.RESULT_ERROR_NULL_PDU: progressDialog.dismiss(); Toast.makeText(getApplicationContext(), "Null PDU", Toast.LENGTH_SHORT).show(); status = "Null PDU"; break; case SmsManager.RESULT_ERROR_RADIO_OFF: progressDialog.dismiss(); Toast.makeText(getApplicationContext(), "Radio off", Toast.LENGTH_SHORT).show(); status = "Radio off"; break; } } }, new IntentFilter(sent)); SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(txt_mobileno.getText().toString(), null, code, sentPI, null); } 

Y llamo al cuadro de diálogo de Activity.RESULT_OK

  public void dialog_confirm(final String SMSCode,Context context) { dialog = new Dialog(context); dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); dialog.getWindow().setBackgroundDrawable( new ColorDrawable(android.graphics.Color.TRANSPARENT)); dialog.setContentView(R.layout.dialog_confirm); final EditText txt_code = (EditText) dialog.findViewById(R.id.txt_code); Button btn_add = (Button) dialog.findViewById(R.id.btn_confirm); Button btn_cancel = (Button) dialog.findViewById(R.id.btn_cancel); btn_add.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String code = txt_code.getText().toString(); if (code.equals(SMSCode)) { match = true; // save if (Constants.ID != 0) { updateRegistration(); } else { saveRegistration(); } dialog.dismiss(); } else { DialogUtil.createErrorDialog(Registration.this, "Registration Error", "SMS verification code does not match!").show(); } } }); btn_cancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub dialog.dismiss(); } }); dialog.setCancelable(false); dialog.show(); } 

y punto de error en dialog.show Aquí está la captura de pantalla. introduzca la descripción de la imagen aquí

El problema es probablemente que el contexto fue destruido por el tiempo que el diálogo se supone que se muestra. Esto se puede evitar así:

 if(!((Activity) context).isFinishing()) { //show dialog } 

Si ha añadido la siguiente línea en su manifest.xml al definir la actividad

android: noHistory = "true"

su actividad definida en el manifest.xml debe verse así

 <activity android:name=".Signup" android:label="@string/title_activity_signup" android:parentActivityName=".LoginSignup" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.yourpackage.LoginSignup" /> 
  • Diálogo de PreferenciasActividad de Android con el selector de números
  • Android: Cambio del texto del cuadro de diálogo de progreso
  • Retorno de un diálogo o actividad con resultado
  • Cómo iniciar una actividad desde un diálogo en Android
  • SetTitle to AppCompatDialog no funciona
  • Android: App Compat Theme - Diálogo cuando grande
  • Cómo establecer el contenido de setSingleChoiceItems en onPrepareDialog?
  • Uso de DatePicker sin selector de día
  • ¿Cómo hacer clic en 'Aceptar' en un AlertDialog a través de código?
  • Configurar la altura y el ancho del diálogo personalizado
  • Cuadro de diálogo sin calendario
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.