Wechsel zwischen Aktivitäten in android?
In meiner android-Anwendung, habe ich folgende Anforderung.
Aktivität A --> Aktivität B(Wechseln zu Einer Option) --> Aktivität C(Gehen Sie Zu Einer Option,Gehen Sie Zu Option B)
1) Gehen Sie Zur Aktivität A Aktivität B benutzt habe ich onBackPressed()
Methode.
2) Gehen Sie Zur Aktivität B Aktivität C benutzt habe ich onBackPressed()
Methode wieder.
diese funktionieren.
3) Jetzt möchte ich zu gehen, um Tätigkeit A Tätigkeit C (ohne Absicht nennen).
Wie kann ich dies tun?
Bearbeitet 1:
Aktivität Eine ist meine Haupttätigkeit, ich will nicht neu starten, die Aktivität mit Absicht.ich möchte die Aktivität A Aktivität c.(wie ich von Aktivität B mit onBackPressed).
Bearbeitet 2(Mit Antwort):
Ok, Jungs. Vielen Dank alle die mir Ihre Hilfe auf meine Frage.schließlich fand ich eine einfache Antwort ähnlich wie @Paresh Mayani Antwort.
Antwort:
Intent a = new Intent(getApplicationContext(),ActivityA.class);
a.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(a);
habe ich diese schöne Lösung durch die Nutzung dieser link, dass mein problem gelöst. vielen Dank an alle nochmal und ich wirklich zu schätzen, dass.
- Was ist dein problem mit Vorsatz??
- Die Aktivität A ist meine Haupttätigkeit, ich will nicht neu starten, die Aktivität mit Absicht.ich möchte die Aktivität A Aktivität c.(wie ich von Aktivität B mit onBackPressed) klar??
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich gehe davon aus, dass Sie nicht verwenden möchten, Absicht, weil, wenn Sie verwenden Vorsatz für den übergang zu Aktivitäten Ein drücken der Back-Taste zur vorigen Aktivität (Aktivität C). In diesem Fall würde ich vorschlagen, Sie zu zählen
FLAG_ACTIVITY_CLEAR_TOP
Flagge. Es wird zerstören, alle früheren Aktivitäten und lassen Sie Sie zu bewegen, um die Aktivität A.Alternativ, Sie können versuchen, die
FLAG_ACTIVITY_REORDER_TO_FRONT
fahne statt, die bewegen Aktivität, die Ein ohne löschen jede Aktivität.Weitere, überprüfen diese.
Gibt es zwei Möglichkeiten, wie Sie dies erreichen können: Ausgehend Von der Absicht, mit der Anwendung der Vorsatz-Filter, Klar, top-stack, aber nach deiner Frage, Sie sind nicht daran interessiert, diese Methode. Zweite Methode ist durch die Aufnahme der Tätigkeit durch StartActivityForResult.
Durch die Verwendung von intent-flags:
Zweite Möglichkeit, Mittels startActivityForResult:
In Aktivität B:
onActivityResult-Methode:
In Aktivität C
startActivityForResult
.Eine zuverlässige Lösung ist ..
Starten Sie Aktivitäten Mit
StartActivityForResult()
Und basierend auf Bedingungen, die Sie gesetzt ResultCodes in Aktivitäten.. Sowas..
GO_TO_ACT_A=1;
GO_TO_ACT_B=2;
Und in allen Activies
onActivityResultMethod
überprüfen Sie das Ergebnis-code..Wenn Sie möchten, neu erstellen Sie Ihre Aktivität dann können Sie FLAG_ACTIVITY_SINGLE_TOP
Dadurch Ihre Aktivität wird nicht neu erstellt werden, vielmehr müssen Sie das überschreiben
onNewIntent()
wird aufgerufen, in Ihrer Aktivität A.UPDATE:
Dieser war mit
Intent
aber als Ihre Anforderung wurde ohne VerwendungIntent
, so dass in diesem Fall der bessere Ansatz wäre mitstartActivityForResult
wie schon ein paar Antworten bin ich nicht erarbeiten, Sie.können Sie passon Rahmen Aktivität B Aktivität C und dann in Aktivität C call
werde, dass in der Nähe Aktivität B und dann kann man rufen
werde, die Ursache der Aktivität C zu schließen und gehen Sie zurück zu Aktivität A Aktivität B ist bereits geschlossen.
Warum kannst du nicht verwenden,
"...Diese Methode wird aufgerufen, bevor eine Aktivität darf getötet werden, so dass, wenn es kommt zurück, irgendwann in der Zukunft kann es wieder sein Zustand. Zum Beispiel, wenn die Aktivität B gestartet wird vor der Aktivität Ein, und irgendwann die Tätigkeit Ein, wird getötet, um Ressourcen freizugeben, die Aktivität A wird eine chance haben, speichern Sie den aktuellen Status des user interface über diese Methode, so dass, wenn der Benutzer erneut Aktivität Ein, die den Zustand der Benutzeroberfläche wiederhergestellt werden kann per onCreate(Bundle) oder onRestoreInstanceState(Bundle)..."
Ich denke, dass ist das, was Sie wollte. Mit diesem können Sie
Intent
von der Tätigkeit C. ja und dann geht esonCreate
Methode, ABER es gibt Sie prüfen, ob es eine Instanz gespeichert. Wenn es eine gespeicherte Instanz aus, die Sie nicht brauchen, um zu laden, den rest deronCreate
Elemente. Es wird die Geschwindigkeit der Anwendung.Können Sie dies tun:
Auf zurück drücken Sie option:
onBackPressed(){
@Override
public void onBackPressed() {
}
Mittels Schaltfläche:
Taste.setOnClickListener( new View.OnClickListener()
{