412 Stimmen

Wie man eine Android-Anwendung programmatisch beendet

Ich habe einige Codes zum programmgesteuerten Beenden einer Android-Anwendung gefunden. Wenn ich einen der folgenden Codes in onDestroy() aufrufe, wird dann die Anwendung vollständig beendet?

  1. System.runFinalizersOnExit(true)
    (OR)
  2. android.os.Process.killProcess(android.os.Process.myPid());

Ich möchte nicht, dass meine Anwendung im Hintergrund läuft, nachdem ich auf die Schaltfläche "Beenden" geklickt habe. Bitte informieren Sie mich, ob ich einen dieser Codes verwenden kann, um meine Anwendung zu beenden? Wenn ja, welchen Code kann ich verwenden? Ist es ein guter Weg, um die Anwendung in Android zu beenden?

1voto

Egor Punkte 38826

Das ist keine gute Entscheidung, weil es gegen die Grundsätze der Anwendungsverarbeitung von Android verstößt. Android beendet keinen Prozess, es sei denn, es ist absolut unvermeidlich. Das hilft Anwendungen, schneller zu starten, da sie immer im Speicher gehalten werden. Sie brauchen also einen ganz besonderen Grund, um den Prozess Ihrer Anwendung zu beenden.

1voto

Daniel F Punkte 12908

Nur um der Liste der brutalen Methoden zur Beendigung einer App eine weitere hinzuzufügen:

Process.sendSignal(Process.myPid(), Process.SIGNAL_KILL);

1voto

Der einfachste Weg, den ich gefunden habe, um eine Anwendung aus einer Aktivität heraus zu beenden, ohne die Logik von Android zu verletzen und ohne weiteren Code in bestehenden Aktivitäten hinzuzufügen und Extras zu übergeben, ist der folgende:

public static void quitApplication (Activity currentActivity) {
    Intent intent = new Intent (currentActivity, QuitApplicationActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

    currentActivity.startActivity (intent);
    currentActivity.finish ();
}

die QuitApplicationActivity sein:

public class QuitApplicationActivity extends AppCompatActivity {

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);

        finish ();
    }
}

1voto

Ahmer Afzal Punkte 472

Versuchen Sie dies

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

1voto

D.Snap Punkte 1465

Das wird alles töten ;)

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X