Up Powinny zawsze nawigować do hierarchicznego nadrzędnego działania, a Back powinien zawsze nawigować tymczasowo.
Innymi słowy powinieneś wyjść z powrotem takim, jakim jest.
Jeśli chodzi o Górę, zawsze należy iść w to samo miejsce, niezależnie od tego, skąd pochodzi. Więc jeśli zwykle odwiedzasz stronę DetailsActivity z YourListActivity, Up powinien zawsze iść tam niezależnie od tego skąd pochodzisz. To, co jest najbardziej prawdopodobne, zależy od Twojego uznania, ale zawsze powinno być takie samo.
Jeśli przejdziesz do działania Szczegóły z innej niż normalna lokalizacji (takiej jak przeglądarka, inna aktywność, widget lub powiadomienie), powinieneś odtworzyć stos zadań, aby nawigacja przy użyciu wyników w górę w tej samej ścieżce. Oto przykład z Android Developer Training:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent upIntent = new Intent(this, YourListActivity.class);
if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
// This activity is not part of the application's task, so
// create a new task
// with a synthesized back stack.
TaskStackBuilder
.from(this)
.addNextIntent(new Intent(this, HomeActivity.class))
.addNextIntent(upIntent).startActivities();
finish();
} else {
// This activity is part of the application's task, so simply
// navigate up to the hierarchical parent activity.
NavUtils.navigateUpTo(this, upIntent);
}
return true;
}
}
Oto szkolenie Android na nawigacji wykonawcze
(http://developer.android.com/training/implementing-navigation/index.html).
Będziesz potrzebować biblioteki pomocy dla NavUtils i TaskStackBuilder.
Podczas korzystania z tej metody aktywność nadrzędna traci wszystkie dodatki i stan. Czy mimo to chcesz przywrócić stan? – sarunw
zgodnie z wytycznymi (http://developer.android.com/design/patterns/navigation.html), powrót nie powinien nawigować w czasie, gdy powiadomienie umieści Cię głęboko w aplikacji. Zobacz przykłady z Gmaila lub kalendarza. – Maragues
@art możesz wypróbować moje rozwiązanie: http://stackoverflow.com/a/20306670/878126 –