web-dev-qa-db-fra.com

Android kill process

Comment tuer toute l'application en un seul clic .. finish () ne fonctionne pas ?? il redirige vers l'activité précédente ... merci de me guider.

          public void onClick(View arg0) {
            // TODO Auto-generated method stub
            WallpaperManager wp = WallpaperManager
                    .getInstance(getApplicationContext());

            try {
                Display d = ((WindowManager) getSystemService(Context.WINDOW_SERVICE))
                        .getDefaultDisplay();
                int width = d.getWidth();
                int height = d.getHeight();
                wp.setBitmap(b1);
            } catch (IOException e) {
                Log.e("error", "Cannot set image as wallpaper", e);
            }

                        finish();

        }
12
Coder

System.exit() ne tue pas votre application si vous avez plus d'une activité sur la pile

Utilisez Android.os.Process.killProcess(Android.os.Process.myPid()); de cette façon.

comme échantillon

public void onBackPressed() {
    Android.os.Process.killProcess(Android.os.Process.myPid());
    super.onBackPressed();
}

Pour plus de détails, voir Quitter une application est-il mal vu? , Comment forcer l'arrêt de mon Android par programme?

J'espère que cela t'aidera.

26
Gunaseelan

Vous pouvez utiliser cette fonction pour fermer votre application

Process.killProcess( Process.myPid() ); 
5

je pense que tu veux ça

    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
1
Senthil

Terminer ()

Ajouté au niveau 1 de l'API Appelez cela lorsque votre activité est terminée et doit être fermée. Le résultat de l'activité est propagé à la personne qui vous a lancé via onActivityResult ().

vous devez utiliser System.exit () pour tuer votre application en un clic pour fermer directement l'activité.

Pourquoi finish () ne fonctionne pas pour vous?

Prenons un exemple où l'activité A avait appelé l'activité B et lorsque vous appelez finish () sur votre activité B si vous avez terminé l'activité, mais comme l'activité A l'avait appelé et que c'est une activité précédente, elle vous ramène à l'écran de l'activité A

Ce que tu peux faire?

  1. Vous pouvez appeler System.exit () - Cela tuera directement l'application où qu'elle soit appelée, peu importe.
  2. Utilisez Process.killProcess (votre identifiant de processus);

  3. Commencez l'activité à domicile en supprimant votre activité actuelle en utilisant finish (), puis appelez

    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    
1
NetStarter
  • Utilisez startActivityForResult pour démarrer une activité.
  • Écrivez finish() dans onActivityResult de l'activité dans laquelle vous commencez une autre activité si result == RESULT_CANCELLED.
  • Enfin, utilisez finish() au point de sortie.
1
user1721904