Enlace profundo en una aplicación mientras la aplicación ya se está ejecutando en segundo plano

He implementado una DeeplinkActivity para capturar el esquema de datos de filtro de intenciones y abrir una actividad. El problema que tengo es que la aplicación ya está abierta en segundo plano y, a continuación, el usuario hace clic en un vínculo profundo para abrir la actividad de la pantalla de inicio. Si el usuario presiona de nuevo para salir de la aplicación que irá a lo que se estaba ejecutando en el fondo. Quería que acabara de salir de la aplicación.

He intentado esto.

Intent intent = new Intent(this, LaunchActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 

Pero esto no funciona. ¿Alguna sugerencia?

Encontré esta pregunta casi 2 años de edad, mientras que enfrenta exactamente el mismo problema … Probablemente demasiado tarde, pero para cualquier otra persona con el mismo problema: Mi solución a esto es utilizar en lugar de contexto actual (actividad) el contexto de la aplicación. Así que la tercera línea se parece a: getApplicationContext().startActivity(intent);

En realidad hay dos maneras de manejar su problema:

android:launchMode="singleInstance" establecer android:launchMode="singleInstance" ( referencia ) en el manifiesto de tu actividad, que se llama desde el enlace profundo. Por lo tanto, la actividad es siempre el único y único miembro de su tarea. Por lo tanto, la actividad no reutilizará ninguna tarea del backstack de la aplicación que ya se esté ejecutando. Tenga cuidado con singleInstance, si abre una actividad singleInstance con un vínculo profundo y luego navega de allí a otra actividad y presiona atrás, obtendrá la actividad principal de la actividad actual y no su actividad singleInstance. Por lo tanto, destruye de alguna manera la navegación de vuelta estándar y tienes que manejar todos estos casos especiales, que puede ser bastante molesto.

O bien, para API> = 16, puedes usar: finishAffinity() ( reference ) en tu método onBackPressed() de tu actividad, pero aquí tienes que distinguir de alguna manera, si la aplicación se abrió a través de deep link, de lo contrario se va a cerrar Su aplicación, incluso cuando sólo desea volver a su menú principal.

  • Excluir pocas URL de la vinculación
  • Android IntentService proporciona datos a Actividad
  • La aplicación de Android se abre desde los enlaces enviados por correo electrónico
  • Deep linking y múltiples instancias de aplicación
  • Android Deep Linking problema! Cómo utilizar el esquema de URL personalizado myapp: // some_data
  • Cómo graciosamente regresar a la página web cuando Deep Link no puede ser manejado por la aplicación
  • La indexación de aplicaciones con signo comercial en Deep Link no funciona
  • Facturación en aplicaciones de Android y servicio bindService
  • Abrir aplicación de Android a través de vínculo profundo si está instalado o volver a la web si no está instalado
  • Android: enlace de datos no se actualiza
  • Abrir mi aplicación del esquema de URL en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.