Wie starten Sie eine Anwendung vollständig?
Ich habe eine Anwendung, die startet ein Remote-Service in seine erste Aktivität gestartet. Dann in einer anderen Tätigkeit, die die Benutzer kann die Konfiguration der Anwendung. Bitte beachten Sie, dass diese zweite Aktivität ist nicht gebunden an den Dienst und ich möchte nicht zu binden.
Nun meine Frage : wie kann ich neu starten, den gesamten Antrag aus der zweiten Aktivität nach dem ändern der Konfigurationseinstellungen?
Jetzt bin ich mit einer Schaltfläche, die onClickListener ist :
public void onClick(DialogInterface dialog, int which) {
sauvegarde();
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
Das problem ist : es startet nur die aktuelle Aktivität, ohne Unterbrechung das ganze Programm, und daher, ohne den Dienst neu zu starten
Irgendwelche Ideen?
System.exit(0)
.Ich bin nicht einverstanden mit der Nutzung der
System.exit(0)
im android.. siehe hierOh!..mein Fehler..
Talentierte Programmierer "nicht neu starten, das ganze Programm", soweit so etwas überhaupt möglich ist. Talentierte Programmierer würde die Verwendung des observer-Musters zu ermöglichen Anwendungs-Komponenten verlassen Sie sich auf diese "Konfiguration", um wissen über die änderungen. Ein Beispiel wäre die Verwendung
SharedPreferences
speichern "Konfiguration", mit anderen Komponenten registrieren OnSharedPreferenceChangedListener
Instanzen, um sich über relevante änderungen.Leider bin ich kein talentierter Programmierer, sofern ich begann das Programmieren in Android über 4 Monaten. Außerdem, ich habe nicht viel Zeit, um zu regulieren das Verhalten der app. Schließlich, lassen Sie mich nur eine Frage : ist es möglich, um mehrere Dateien unterschiedlicher Art mit SharedPreferences?
InformationsquelleAutor WhiskThimble | 2013-06-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Androiden system AlarmManager wie diese:
Code, um die app starten in Ihre Tätigkeit:
Kann ein Beispiel betrachtet werden, bis hier
UPDATE
Als @CommonsWare wies darauf hin, es ist ein schlechter Weg, um design Ihrer app, wenn Sie haben, um es neu zu starten (bad practice). Wenn Sie wirklich wollen, es zu tun, können Sie versuchen, die Einstellung alarmmanager starten Sie Ihre app in einer Sekunde, nachdem Sie getötet, Ihren eigenen Prozess:
Sorry, ich habe nicht das code-Beispiel klar genug, ich habe es behoben. Ist mein Beispiel jetzt klar?
Ich habe bereits versucht dies. Schließt es die Anwendung, in der Tat, aber startet ihn auf die Aktivität, beendet. Und das ist nicht das, was ich möchte...
Ich aktualisiert meine Antwort.
Ihre Art und Weise ist völlig der bessere Weg, das zu tun. Dank
InformationsquelleAutor alex
Dies ist die neueste Antwort mit dem neuesten update 2017 getestet und funktioniert wie ein Charme hoffe, dass hilft 🙂
InformationsquelleAutor Mohamed Ayed
versuchen, diese
InformationsquelleAutor Michael Shrestha
versuchen, diesen code,
Neustart-Methode
sauvegarde();
sauvegarde() ist eine Methode überschreibt meine Konfiguration Datei (und ein paar weitere Stoffe)
Überlauf Benutzer von Android-Dokumentation :
finish() : Call this when your activity is done and should be closed.
Daher, so schließt es die Aktivität, aber nicht die AnwendungEs ist jetzt die gleiche wie bei alex ' s Art und Weise, es zu tun : es startet die Aktivität, beendet die app
jetzt bin ich aktualisiert meine Antwort versuchen!
InformationsquelleAutor Stack Overflow User
in Ihrem neu starten, Aktivität hinzufügen, diese
für jede Ihrer Aktivität hinzufügen getactivity(yourclassname), dann beenden Aktivität.
wenn Sie fügen Sie alle Ihre Aktivitäten, wie dies Ihre Anwendung schließen & Neustart
InformationsquelleAutor user3427196
Lösung von
AlarmManager
kann nicht funktionieren, weil auf kill app alle pending-intents können entfernt werden. Auf android-10 habe ich dieses Problem.Aber ich fand andere Art und Weise zu erstellen
Instrumentation
Klasse, und rufen SiestartInstrumentation
aufContext
. Arbeitete sehr nett.Instrumentation
muss im manifest definiert. Google, wie Sie es verwenden.InformationsquelleAutor Enyby