Zwei Aktivitäten A, B. Wenn A startet Daten definiert ist. Von A nach B wird Aktivität aufgerufen, Und eine Aktivität wird schließlich zerstört. Wie kann ich aufhören, eine Aktivität zu zerstören? Und erhalten Sie die gleichen oncreate Daten, wenn zurück von BAlte Aktivitätsdaten speichern Android
Antwort
Wenn Sie Intent für die Navigation von A nach B verwenden. Rufen Sie nicht finish() -Methode. Starten Sie einfach Ihre B-Aktivität.
für ex:
Intent intent = new Intent (A.this,B.class);
startActivity(intent);
//Here dont use finish() method as it destroys current Activity.
Hoffe, es hilft :)
Wenn @Onkarene richtig ist, dann werden Sie wahrscheinlich alle Ihre Daten speichern wollen, wenn 'onSaveInstanceState' , so können Sie sie in 'onCreate' abrufen, falls das System beschließt, Ihre Aktivität zu zerstören. –
Wenn Sie ACTIVITYA gehen ACTIVITYB dann ACTIVITYA standardmäßig nicht zerstören. Wenn Sie finish() als activityA angeben und dann nur activityA zerstören.Andersfalls ActivityA ist nur stop, aber immer noch in background.So, fügen Sie nicht die finish() -Methode hinzu, wenn Sie von einer Aktivität auf eine andere übertragen.
Was Sie
Intent intent = new Intent(ActivityA.this,ActivityB.class);
startActivity(intent);
für Ihre Situation tun, und wenn Sie zu ACTIVITYA sichern kann, wird es nennen OnStop() -Methode von ACTIVITYA. So können Sie Ihr Datum erneut in onStop() -Methode definieren.
Dies ist ziemlich gegen die Android-Philosophie. Warum möchten Sie, dass die Aktivität nicht zerstört wird? Vielleicht können Sie an Fragmente denken, um verschiedene Rahmen innerhalb der Aktivität (und den Übergang zwischen ihnen) zu erstellen. Wenn Sie die Aktivität für Datenpersistenz nicht zerstören wollen, schauen Sie sich die Datenspeichermethoden an, die android anbietet, und rufen sie in der onResume auf. – Bram