アプリにアクティビティ A、B、C があり、その順序で流れます。Up ボタンを C で実装する場合、B に戻るようにします。Eclipse が生成したコード スタブは次のとおりです。
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case android.R.id.home:
// This ID represents the Home or Up button. In the case of this
// activity, the Up button is shown. Use NavUtils to allow users
// to navigate up one level in the application structure. For
// more details, see the Navigation pattern on Android Design:
//
// http://developer.android.com/design/patterns/navigation.html#up-vs-back
//
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
ただし、B は onCreate メソッドで A からエクストラが渡されることを期待しています。B と C の関係は、C ではユーザーが B の表示方法に影響するいくつかの設定を行うことができるということです。私は現在、onPause() で C の変更を保存する処理を行っています。ユーザーがnavigateUpFromSameTask(this)を呼び出す代わりにUpを押したときに、Cをfinish()する必要がありますか?