Comment supprimer une application de la liste des applications récentes?

Je suppose que Android ne permettra pas aux gens de le faire, car ils pensent qu’ils ont un contrôle parfait pour la tâche / les applications. Cependant, je dois vraiment le faire dans mon cas.

J’ai une activité A agissant comme point d’entrée de ma candidature. Dans cette activité, il lit la préférence et décide quelle activité commencer, par exemple B ou C. Après cela, elle se termine. Ainsi, l’activité A n’apparaît jamais aux utilisateurs.

Mon application stocke les choses sur la carte SD et en lit constamment. Par conséquent, lorsque la carte SD est désinstallée, je dois afficher un message indiquant que la carte SD n’est pas disponible, au lieu d’ouvrir B ou C. J’atsortingbue une coche A pour afficher ce message lorsque la carte SD est indisponible. Lorsque ce message est affiché, A n’essaiera pas de démarrer B ou C.

Les choses fonctionnent parfaitement si l’utilisateur n’entre que ma candidature à partir du lanceur d’application. Cependant, j’ai trouvé que l’utilisateur pouvait également entrer mon application en appuyant longuement sur home et le choisir dans la liste des applications récentes, s’il l’avait ouvert récemment. Lorsque l’utilisateur fait cela, il ignore A et passe directement à B ou C. Je n’ai pas la vérification dans les deux, donc une exception est levée pendant que j’essaie d’accéder à la carte SD et une boîte de dialog de fermeture apparaît.

Je peux simplement déplacer mon chèque à la fois à B et à C pour résoudre ce problème. Mais à l’avenir, le nombre d’activités démarrées à partir de A augmentera. S’il y en a 6, je devrai copier ce chèque à 6 places. Inutile de dire que cela semble très moche, et c’est un cauchemar de maintenance.

Ainsi, la meilleure solution devrait être de supprimer mon application de la liste des applications récentes lorsque la carte SD est montée. Cependant, je ne peux pas trouver comment faire cela. Même en tuant le processus ou en utilisant ActivityManager.restartPackage, il apparaît toujours dans la liste. Quelqu’un peut-il me dire comment le retirer de la liste?

essayer

  

dans la déclaration d'activité de votre AndroidManifest.xml .

D’autres atsortingbuts peuvent aider votre activité à s’isoler des autres activités du même package.

  

il suffit d’append android:excludeFromRecents="true" dans la balise de votre activité dans le fichier manifeste .. c’est facile

Vous devez définir AndroidManifest.xml:

  ... android:excludeFromRecents="true" ...  

ou commencer cette activité à partir de

 intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 

et aussi dans AndroidManifest.xml

  ... android:label="" ...  

Si vous définissez l’étiquette comme vide, cette activité ne sera PAS affichée dans la liste des applications récentes.

Je ne recommanderais pas de le faire mais j’essaierais les options suivantes:

Option 1:

A B et C append:

 protected void onPause() { finish(); } 

Option 2:

Ajoutez à B et C les éléments suivants dans AndroidManifest :

 android:noHistory= "true" 

Supprimer votre application de la liste des applications récentes n’est probablement pas possible, et certainement pas la meilleure solution. Cela ne fera que perturber l’utilisateur qui s’attend à ce que toutes les applications se comportent de la même manière.

Peu importe, je ne pense pas que cela résoudra votre problème. Si l’utilisateur frappe à la maison pendant l’activité B, puis sélectionne votre application à partir de la page d’accueil, il redémarre Activiy B.

Il y a plusieurs façons de résoudre le problème réel. Vous pouvez facilement créer une activité de base qui effectue la vérification de la carte SD et étendre toutes vos activités. De cette façon, le chèque est seulement à un endroit.

OK, je sais pour un fait que cela peut être fait en 2.3.4. L’application Toddler Lock, lorsqu’elle est ouverte, efface la liste des applications récentes de sorte que lorsque vous “verrouillez” votre téléphone si vous appuyez longuement sur la touche home, la liste est vide. Malheureusement, je n’ai pas trouvé comment le faire. Donc, pour quiconque regarde et lit postf qui disent que ce n’est pas possible, n’abandonnez pas. Je suis sûr que non.

Si vous voulez quitter l’application sur le bouton, utilisez ce code:

 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); startActivity(intent); 

Pour tuer l’application complète et la supprimer de la liste Runningapp, tuez l’application via son pid (c’est méchant) … utilisez ces lignes avant le code ci-dessus.

 int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid);