2016-08-28 1 views
1

Je fais une gestion d'exception globale pour mon application avec defaultuncaughtexception thread, pour lequel j'ai créé un autre processus avec une affinité différente. Une fois l'exception gérée, je redémarre mon paquet avec l'intention du lanceur mais toutes les instances précédentes de mon application qui s'exécutent en arrière-plan et gênent avec ma préférence partagée. Je veux fermer toute l'instance de l'application. J'ai essayé tuant PID, en tuant le processus d'arrière-plan avec le nom du paquet, fini, terminer l'affinité mais rien n'a aidé.fermeture muliple processus avec différentes affinité android

Toute aide serait appréciée

Répondre

1

Option 1: Cela ne tue pas l'application entière, mais si ce que vous voulez faire est de terminer toutes les activités d'application, c'est la meilleure option.

De Android 16+ vous pouvez utiliser les éléments suivants:

finishAffinity();

Pour les versions antérieures, vous pouvez utiliser:

ActivityCompat.finishAffinity(Activity activity)

Option 2 Essayez ce code pour force arrêtez votre application ...

private void QuitApplication(){ 

    int pid = android.os.Process.myPid(); 
    android.os.Process.killProcess(pid); 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    startActivity(intent); 

} 

Le meilleur moyen (recommandé)

android.os.Process.killProcess(android.os.Process.myPid()); 
System.exit(0); 

Je ne pense pas que ce soit si mal que ça pour ce faire, à condition que vous mettez ces appels à onDestroy(). (Si vous tuez votre processus au milieu de la gestion des événements, toutes sortes de mauvaises choses — comme la mise au point tactile va dans le — éther peut se produire.)

Néanmoins, vous avez besoin d'une raison impérieuse de s'écarter des meilleures pratiques, qui est de simplement appeler finish() et laisser le système d'exploitation prendre soin de tuer votre processus quand/si nécessaire.

+0

J'ai essayé l'option 1 et l'option 2. Je vais essayer ** le meilleur moyen **. –

+0

Ok selon l'exigence que vous pouvez utiliser, la meilleure chance –

+0

j'ai essayé tous les moyens encore il ne ferme pas il reste en arrière-plan –