¿Cómo detener una actividad en android usando la intención?

Creo que esta es una pregunta básica. ¿Existe alguna opción para detener una actividad mediante el uso de la intención.

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:5554")); startActivity(intent); 

Este es mi código. Me gustaría detener esta actividad (es decir, quiero dejar esta llamada) si el usuario está ocupado o algo así. ¿Qué puedo hacer por eso? He intentado esto:

 if (condition) { Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:5554")); startActivity(intent); }else { this.finish(); } 

Pero de ninguna utilidad. ¿Alguien tiene una sugerencia?

Tuve este problema hace unos días, y estoy feliz de decirte que he encontrado una forma de evitar esto.

En primer lugar, a la actividad que quieres parar, agrega esto en el AndroidManifest.xml :

 android:launchMode="singleTop" 

Voy a utilizar un ejemplo CheckBox. Cuando se comprueba, la actividad se inicia y cuando no se selecciona se eliminará la actividad.

Ejemplo La actividad A está llamando a la actividad B y luego matándola usando una intención.

Código para ser puesto en A:

 checkbox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(A.this, B.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); if (enable.isChecked()) { intent.putExtra("keep", true); startActivity(intent); } else { intent.putExtra("keep", false); startActivity(intent); } } }); 

Código que se pondrá en B:

 boolean keep; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.B); intent = this.getIntent(); boolean keep = intent.getExtras().getBoolean("keep"); if(keep==true) { //execute your code here } } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); keep = intent.getExtras().getBoolean("keep"); if(keep==false) { B.this.finish(); } } 

Explicación: Lo que esto hace básicamente es, cuando se marca la casilla de verificación llama a la actividad y pasa un valor booleano, si es cierto que la actividad se mantiene viva y se lleva al primer plano. Ahora, si no pasa el flag singleTop , muchas instancias de esta actividad serán creadas. singleTop asegura que sólo se llama a la misma instancia. Ahora, cuando la casilla de verificación está desmarcada, se pasa un nuevo valor para keep, que se verifica en B. Si no se selecciona, la Actividad A pasará falso, y por lo tanto B se terminará de onNewIntent() función onNewIntent() .

¡Espero que ayude!

PS: también puedes cerrar la Actividad B de otra Actividad. Sólo use Si la otra actividad es C:

 Intent intent = new Intent(C.this, B.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); intent.putExtra("keep", false); startActivity(intent); 

Puede desactivar los datos de fondo de la tienda de reproducción y reproducir servicios para no entrar en la tienda de reproducción. Simplemente dirá: "NO PUEDE SER CARGADO" Esa es la única manera que encontré para detener la intención

  • Resolver el URI de diferentes fuentes en Android mientras se abre una imagen
  • Utilizar un receptor de broadcast / broadcast para enviar mensajes de un servicio a una actividad
  • Cómo desencadenar un evento como iniciar una aplicación cuando se selecciona un texto
  • Inicio de la actividad mediante la acción personalizada
  • ArrayList no se puede convertir en clase personalizada extendiendo ArrayList
  • ¿Por qué los documentos de Android dicen que los extras de intenciones necesitan un prefijo de paquete
  • Android google play juegos seleccionar actividad para iniciar cuando se hace clic en la notificación
  • Pasando el archivo con intención, ¿cómo lo recupero?
  • Comunicación de Android entre Actividades sin onActivityResult
  • Pausa de envío al marcador
  • ¿Cómo puedo volver a una actividad de padres correctamente?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.