Как создать родительскую активность в Android? - PullRequest
2 голосов
/ 07 сентября 2010

Как мы знаем, startActivityForResult() используется для получения результата задачи из родительской активности. Здесь, когда мы нажимаем setResult(). Возвращает результат в родительское действие.

Дочерняя активность означает, что она должна поддерживать постоянное состояние. Это когда пользователи нажимают кнопку на дочерней активности. Он не завершает эту деятельность и показывает родительскую активность. И снова я могу перейти к детской активности от родительской активности. Если дочерний элемент не существует, он запускает новый дочерний процесс, в противном случае должен отображаться существующий дочерний процесс с постоянным содержимым.

Edit:

Проще говоря, моя родительская активность начинает новую дочернюю активность. Теперь оба занятия должны быть живы. Как вызвать родительское действие без завершения дочернего действия (другими словами, как создать родительское действие)? Для этого сценария

  • вы не можете использовать startActivity(). Потому что это создает новый экземпляр Activity. Отсутствует родительская активность
  • вы не можете использовать startActivityForResult(). Потому что это завершает дочерний экземпляр Activity.

Возможно ли это в Android? Любая идея?

Ответы [ 3 ]

2 голосов
/ 07 сентября 2010

Это невозможно в Android. Такой случай не предусмотрен в жизненном цикле деятельности.

Можно смоделировать такое поведение путем повторного использования одного действия и простого переключения макета. Вам нужно будет сохранить все состояние действия, затем изменить макет на макет, который должен быть дочерним действием, и если пользователь переключится обратно на родительское действие, вам потребуется сохранить состояние дочернего действия и восстановить состояние родительской деятельности. Вам также необходимо самостоятельно обработать клавишу возврата, чтобы пользователь не мог нажать ее и вернуться к операции, которая запустила родительскую операцию.

Более простой способ - использовать tabwidget и позволить пользователю переключаться между вкладками. Это позволяет вам инициализировать вкладки с двумя разными целями, и обе они будут приостановлены, только если пользователь вернется к другой вкладке.

0 голосов
/ 20 апреля 2012

Попробуйте использовать FLAG_ACTIVITY_REORDER_TO_FRONT.

0 голосов
/ 07 сентября 2010

Пожалуйста, установите разные taskAffinity для родительских и дочерних действий,
и используйте startActivity (намерение), чтобы начать свою деятельность с флагом FLAG_ACTIVITY_NEW_TASK .

Метод приводит к тому, что два действия принадлежат разным задачам, и состояние будет сохраняться при переключении задачи путем добавления флага FLAG_ACTIVITY_NEW_TASK.

Я думаю, это должно работать.

...