Ich habe eine Android-Anwendung mit einer Abmeldeoption in onCreateOptionsMenu
erstellt. Die Abmeldung funktioniert einwandfrei, aber wenn ich die Zurück-Taste erneut drücke, gelangen Sie zur vorherigen Aktivität. Wenn sie einen Nullwert erhält, wird der Login-Bildschirm angezeigt. Nun erscheint mein Anmeldebildschirm immer wieder. Ich möchte die App vollständig schließen, wenn ich die Zurück-Taste drücke, weiß aber nicht wie.
Hier ist mein Code für das Drücken der Zurück-Taste im Anmeldebildschirm:
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setTitle("BidNEMO")
.setMessage("Are you sure you want to exit?")
.setNegativeButton(Android.R.string.no, null)
.setPositiveButton(Android.R.string.yes, new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Main.super.onBackPressed();
finish();
}
}).create().show();
}
bitte hilf guyss ..
Um Quit Application
auf Button zu klicken, verwenden Sie diesen Code:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
Versuch es..
Um die komplette App zu beenden und sie aus der Liste Running
app zu entfernen, töten Sie die App über ihre pid
(ihr fieser).
int pid = Android.os.Process.myPid();
Android.os.Process.killProcess(pid);
Wenn Sie die Anwendung vollständig schließen möchten, sollten Sie finishAffinity();
anstelle von finish()
..__ verwenden. Dadurch werden alle Aktivitäten gelöscht, die zuvor von einer Anwendung geöffnet wurden.
Für Xamarin-Benutzer:
int pid = Android.OS.Process.MyPid();
Android.OS.Process.KillProcess(pid);
setzen Sie es in Ihre OnDestroy()
-Funktion.
Bearbeiten :
Nach eingehender Untersuchung fand ich heraus, dass selbst der oben genannte Code, den ich geschrieben habe, die App nicht vollständig "tötet". Nach vielen Code-Tryouts gelang es mir schließlich, etwas herauszufinden: "Finish" überschreibt die Funktionen mit diesem Code:
public override void Finish()
{
if (Android.OS.Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
{
base.FinishAndRemoveTask();
}
else
{
base.Finish();
}
}
dies ist die einzige Lösung für diese Frage!
Um eine Aktivität zu beenden, verwende ich diesen Code:
public void appExit () {
this.finish();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
} //close method
oder Prozess mit diesem Code beenden:
int pid = Android.os.Process.myPid();
Android.os.Process.killProcess(pid);
Für API 21 und höher
Sie können dies aufrufen, um die App vollständig zu schließen. Alle Aktivitäten werden finish()
und die App wird aus der Aufgabenliste entfernt.
Auch wenn es in Ordnung aussieht, wird der Tötungsprozess in Zukunft Kopfschmerzen verursachen. Sie können dies durch folgenden Anwendungsfall sicherstellen:
BEOBACHTET: Ihre Anwendung wird nicht auf inkonsistente Weise aus der Hauptaktivität geöffnet. Dies liegt daran, dass Android das Abstürzen eines Prozesses wie Absturz in Betracht zieht.
Nähere Informationen finden Sie hier: Wird das Beenden einer Anwendung missbilligt?
Android.os.Process.killProcess(Android.os.Process.myUid());
Ich denke, das ist besser ... Wie sieht es aus?