Как открыть детскую активность прямо в Android? - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть этот случай использования, когда я открываю действие настроек (назовите его родительским действием) и другое дочернее действие настроек (назовите его дочерним действием).Нормальный поток: Open parent activity -> click some button -> open child activity.Пока все хорошо.

Теперь, в конкретном случае использования, где плавающая кнопка (например, chat-head - которая всегда присутствует на экране) должна непосредственно открывать дочернее действие.Предостережение заключается в том, что если действие «Настройки» уже присутствует, дочернее действие должно вести себя так, как если бы дочерний процесс был открыт с тем же потоком, что и Settings->child.

Каким должен быть правильный подход для этого?Во-первых, я проверяю, выполняется ли действие по настройкам, я добавляю флаг к цели и открываю только экран «Настройки», который при проверке флага открывает дочернюю активность.Но проверка того, что Настройки уже запущены, может быть не рекомендована, или, возможно, есть более подходящий подход.

1 Ответ

0 голосов
/ 20 февраля 2019

Необходимо сделать пару вещей:

  1. в вашем манифесте, дочерняя активность должна указывать на родителя, используя android:parentActivityName значение атрибута
  2. при выходеВаше дочернее действие (например, через «up» или системные обратные обработчики) вызывает что-то вроде этого:

    Intent upIntent = NavUtils.getParentActivityIntent (this);
    TaskStackBuilder.create (this) .addNextIntentWithParentStack (upIntent)) .startActivities ();

...