android - pueden - ¿Cómo eliminar la aplicación de la lista de aplicaciones recientes?
desinstalar aplicaciones android de fabrica (8)
Supongo que Android no permitirá que la gente haga esto, porque creen que tienen un manejo perfecto para la tarea / aplicaciones. Sin embargo, realmente necesito hacer esto en mi caso.
Tengo una actividad A que actúa como el punto de entrada de mi aplicación. En esa actividad, lee la preferencia y decide qué actividad comenzar, por ejemplo B o C. Después de eso, se termina. Entonces, la actividad A nunca aparece a los usuarios.
Mi aplicación almacena cosas en una tarjeta SD y lee constantemente. Entonces, cuando la tarjeta SD se desmonta, necesito mostrarle al usuario que la tarjeta sd no está disponible, en lugar de abrir B o C. Establezco una marca en A para mostrar ese mensaje cuando la tarjeta SD no está disponible. Cuando se muestra ese mensaje, A no intentará iniciar B o C.
Las cosas funcionan perfectamente si el usuario solo ingresa mi aplicación desde el iniciador de aplicaciones. Sin embargo, descubrí que el usuario también puede ingresar a mi aplicación presionando prolongadamente home y seleccionándola de la lista de aplicaciones recientes, si la ha abierto recientemente. Cuando el usuario hace eso, omite A y va directamente a B o C. No tengo el cheque en ambos, por lo que se lanza una excepción mientras intento acceder a la tarjeta SD, y aparece el cuadro de diálogo de forzar cierre.
Puedo simplemente mover mi cheque a B y C para solucionar este problema. Pero en el futuro, la cantidad de actividades iniciadas desde A aumentará. Si hay 6 de ellos, tendré que copiar este cheque en 6 lugares. Huelga decir que esto se ve muy feo y es una pesadilla de mantenimiento.
Por lo tanto, la mejor solución debería ser eliminar mi aplicación de la lista de aplicaciones recientes cuando la tarjeta SD no está montada. Sin embargo, no puedo encontrar cómo hacer esto. Incluso matando el proceso o usando ActivityManager.restartPackage, aún aparece en la lista. ¿Alguien puede decirme cómo eliminarlo de la lista?
Debes configurar AndroidManifest.xml:
<activity>
...
android:excludeFromRecents="true"
...
</activity>
o comienza esta actividad desde
intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
y también en AndroidManifest.xml
<activity>
...
android:label=""
...
</activity>
Establecer la etiqueta como vacía permitirá que esta actividad NO se muestre en la lista de aplicaciones recientes.
La eliminación de su aplicación de la lista de aplicaciones recientes probablemente no sea posible, y definitivamente no es la mejor solución. Eso solo confundirá al usuario que espera que todas las aplicaciones se comporten de manera similar.
De todos modos, no creo que vaya a resolver tu problema. Si el usuario golpea el inicio mientras está en la Actividad B, luego selecciona su aplicación desde la página de inicio, se iniciará Activiy B nuevamente.
Hay varias formas de resolver el problema real. Uno fácil podría ser crear una actividad base que realice la verificación de la tarjeta SD y que todas sus actividades se extiendan desde allí. De esa forma, el cheque solo está en un lugar.
No recomendaría hacerlo, pero probaría las siguientes opciones:
Opción 1:
En B y C, agregue:
protected void onPause() {
finish();
}
Opcion 2:
Agregue a B y C lo siguiente en el AndroidManifest
:
android:noHistory= "true"
OK, sé con certeza que se puede hacer en 2.3.4. La aplicación Bloqueo para niños pequeños cuando se abre borra la lista de aplicaciones recientes para que cuando "Bloquee" su teléfono, si mantiene presionada la tecla de inicio la lista estará en blanco. Lamentablemente, no he encontrado cómo hacerlo. Entonces, para cualquiera que esté mirando y leyendo postf que diga que no es posible, no te rindas. Estoy seguro de que no lo soy.
Otros atributos pueden ayudar a aislar su actividad de otras actividades en el mismo paquete.
<activity
android:name=".aActivity"
android:excludeFromRecents="true"
android:taskAffinity=""
android:launchMode="singleInstance">
si quieres salir de la aplicación en el botón haz clic en este código:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
Para matar la aplicación completa y eliminarla de la lista de Runningapp, mata la aplicación a través de su pid (es desagradable) ... usa estas líneas antes del código anterior.
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
solo agrega android:excludeFromRecents="true"
en la etiqueta de tu actividad en el archivo de manifiesto ... es fácil
tratar
<activity android:name=".MainActivity"
android:excludeFromRecents="true" ...
en la declaración de actividad de tu AndroidManifest.xml
.