2012-12-19 7 views
6

Ich habe zwei Aktivitäten, A und B. Ich habe eine Schaltfläche in A, wenn gedrückt, startet eine neue Absicht zu B. Allerdings immer, wenn ich die Zurück-Taste in B drücken, Als ich die Schaltfläche erneut anklicke, wird Activities neu gestartet. Ich möchte das nicht tun, ich möchte, dass es die Aktivität B wieder aufnimmt. Eigentlich mache ich etwas Networking in Activity B und ich möchte speichern, wenn der Benutzer nicht aktualisieren will. Wie kann ich es tun? Vielen Dank im VorausNicht zu zerstören aktuelle Aktivität auf Zurück-Taste gedrückt wird

+0

Code in Ihre Frage, was ist die Methode, die Sie verwenden ?! hast du versucht onResume()? –

+0

Sie meinen, Sie möchten die Zurück-Schaltfläche deaktivieren? – Egor

+0

Anruf beenden() während Sie Aktivität starten B –

Antwort

1

Sie benötigen die

onBackPressed

Methode und starten dort die Aktivität wie folgt Übergehungseinrichtung:

@Override 
    public void onBackPressed() { 
    Intent intent = new Intent(this, activityA.class); 
    startActivityForResult(intent, PICK_CONTACT_REQ); 
} 
10

Verwenden

@Override 
    public void onBackPressed(){ 
     moveTaskToBack(true); 
    } 

Hoffe, es muss dir helfen

+0

Das war einfach und einfach !! danke – user1501382

1

Das klingt wie Sie Ihre Architektur überdenken müssen. Sie sagen:

Eigentlich ich eine Vernetzung in Aktion B tue und ich möchte speichern, wenn der Benutzer aktualisieren will.

Wenn dies der Fall ist, möchten Sie wahrscheinlich Ihr Netzwerk in ActivityB nicht tun. Vielleicht sollten Sie eine Service von ActivityB starten, um das Netzwerk zu tun. Der Dienst und die Aktivität können miteinander kommunizieren, so dass die Aktivität den Benutzer über den Status der Vernetzung auf dem Laufenden halten kann. Wenn der Benutzer in Aktivität B ZURÜCK drückt, kann er (wie üblich) beenden und zu Aktivität A zurückkehren. In diesem Fall verwaltet der Dienst weiterhin das Netzwerk. Wenn der Benutzer ActivityB (von ActivityA) erneut startet, kann die neue Instanz von ActivityB mit dem Dienst kommunizieren, um festzustellen, ob ein Netzwerk vorhanden ist. Wenn dies der Fall ist, kann der aktuelle Status dieses Netzwerks abgerufen oder gestartet oder gestoppt werden was auch immer.

+0

yaa ur richtig .. aber ich weiß nicht, wie man das erreicht .. können Sie mehr helfen .. – Dory

+0

Nicht wirklich :-(Ich müsste sehen, was Sie bereits haben und das geht über den Rahmen dieses Q & A-Forum Das wird stundenweise zur Softwareberatung ;-) Sehen Sie sich Tutorials und Beispielcode an, die Netzwerk-I/O in einem Hintergrund-Thread ausführen. Viel Glück! –

Verwandte Themen