Ответ 1
Вверх. Всегда следует переходить к иерархическому родительскому элементу активности, а Back всегда должен временно перемещаться.
Другими словами, вы должны оставить Назад, как есть.
Что касается Up, он всегда должен идти туда же, независимо от того, откуда он. Поэтому, если вы обычно приходите в DetailsActivity из YourListActivity, Up должен всегда идти туда независимо от того, откуда вы пришли. Самое вероятное место зависит от вашего усмотрения, но оно всегда должно быть одинаковым.
Если вы перейдете к операции с деталями из ненормального местоположения (например, в браузере, другом действии, виджетах или уведомлении), вы должны воссоздать стек задач, чтобы навигация, используя результаты по тому же пути. Вот пример тренинга для разработчиков Android:
@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 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 task, so simply
// navigate up to the hierarchical parent activity.
NavUtils.navigateUpTo(this, upIntent);
}
return true;
}
}
Вот тренировка Android по внедрению навигации
(http://developer.android.com/training/implementing-navigation/index.html).
Вам понадобится библиотека поддержки для NavUtils и TaskStackBuilder.