60 votes

Comment faire pour supprimer l'application de application récente de la liste?

Je suppose que Android ne laissent pas les gens à le faire, parce qu'ils pensent qu'ils ont poignée idéale pour la tâche/applications. Cependant, j'ai vraiment besoin de le faire dans mon cas.

J'ai une activité en agissant comme point de départ de ma demande. Dans cette activité, il lit la préférence et qui a décidé l'activité pour commencer, disons B ou C. Après, il finit lui-même. Ainsi, l'activité n'apparaît jamais pour les utilisateurs.

Mon application stocke des choses sur la sdcard, et lit de permanence. Ainsi, lorsque la carte sd est démonté, j'ai besoin d'afficher un message à l'utilisateur que la carte sd n'est pas disponible, au lieu de l'ouverture B ou C. j'ai mis une case dans Un affichage de ce message lors de la sdcard est unavilable. Lorsque ce message est affiché, Une volonté de ne pas essayer de démarrer B ou C.

Fonctionne parfaitement si l'utilisateur seulement entrer dans mon application depuis le lancement de l'application. Cependant, j'ai trouvé que l'utilisateur peut également entrer dans mon application en appuyant longuement sur la maison et de choisir à partir de l'application récente de la liste, si il l'a ouvert récemment. Lorsque l'utilisateur fait, il saute et passe directement à B ou C. je n'ai pas le vérifier dans les deux d'entre eux, alors une exception est levée alors que je suis en train d'essayer d'accéder à sdcard, et de la force de fermer la boîte de dialogue pop-up.

Je peux simplement passer mon chèque à la fois B et C pour résoudre ce problème. Mais à l'avenir, le nombre d'activités a commencé à partir d'Une volonté d'augmenter. Si il y a 6 d'entre eux, je vais avoir besoin de copier cette case à 6 places. Inutile de dire, c'est très moche, et est d'un entretien cauchemar.

Donc, la meilleure correction devrait être la suppression de mon application à partir de la récente application de la liste lorsque la carte sd est uunmounted. Cependant, je ne trouve pas comment faire. Même en tuant le processus ou l'utilisation ActivityManager.restartPackage, il apparaît toujours dans la liste. Quelqu'un peut me dire comment le supprimer de la liste?

210voto

Mannaz Points 6351

essayez

<activity android:name=".MainActivity"
        android:excludeFromRecents="true" ...

20voto

Kislingk Points 450

D'autres attributs peuvent aider votre activité isoler des autres activités dans le même package.

<activity 
android:name=".aActivity"
android:excludeFromRecents="true"
android:taskAffinity=""
android:launchMode="singleInstance">

17voto

user632905 Points 388

juste ajouter android:excludeFromRecents="true" dans ur de l'activité de définition dans le fichier manifeste..c'est facile

4voto

Cheryl Simon Points 25259

La suppression de votre application à partir de la récente liste des applications est sans doute pas possible, et certainement pas la meilleure solution. Cela ne fera qu'embrouiller l'utilisateur qui attend toutes les applications à se comporter de la même manière.

Peu importe, je ne pense pas que cela résoudra votre problème. Si l'utilisateur accède à la maison tandis que sur l'Activité B, puis sélectionne votre application à partir de la page d'accueil, il va commencer Activiy B de nouveau.

Il y a un certain nombre de façons de résoudre le vrai problème. Un facile peut-être de créer une base de l'Activité qui effectue la carte SD chèque, et l'ensemble de vos activités s'étendent à partir d'elle. De cette façon, le chèque est dans un seul endroit.

4voto

Macarse Points 36519

Je recommande de ne pas le faire mais je voudrais essayer l'une des options suivantes:

Option 1:

Sur B et C ajouter:

protected void onPause() {
  finish();
}

Option 2:

Ajouter à B et C suivantes dans l' AndroidManifest:

android:noHistory= "true"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X