Up は常にアクティビティの階層的な親に移動し、Back は常に一時的に移動する必要があります。
つまり、Back はそのままにしておく必要があります。
アップに関しては、どこから来たとしても常に同じ場所に行くべきです。したがって、通常、YourListActivity から DetailsActivity にアクセスする場合、どこから来たかに関係なく、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'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;
}
}
ナビゲーションの実装に関する Android トレーニングは次のとおりです。
( http://developer.android.com/training/implementing-navigation/index.html )。
NavUtils と TaskStackBuilder のサポート ライブラリが必要になります。