Из моего наблюдения с приложения Gmail и TED поведение навигационной системы будет перемещаться к родительскому объекту с тем же состоянием (позиция прокрутки), не похожим на то, что Google говорит в своем документе Внедрить навигацию, которая, как правило, создает намерение родителя и запускает его.
Я реализую код из кода образца Android, и все состояние ушло (все дополнительные параметры, которые я ранее задал и прокручивал позицию). Каков правильный способ? Я не могу найти какой-либо документ в Android.
Ниже приведен код:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent upIntent = new Intent(this, MyParentActivity.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, MyGreatGrandParentActivity.class))
.addNextIntent(new Intent(this, MyGrandParentActivity.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;
}
return super.onOptionsItemSelected(item);
}
В моем случае я получил 3 действия, которые говорят AB и C, когда пользователь перемещается из A в BI, добавляет некоторые дополнительные функции, а onCreate
BI использует эти дополнительные функции для запроса данных из базы данных, чтобы заполнить мои строки и когда я вернусь обратно с C все дополнительные функции исчезли, и активность B ничего не показывает.