2016-04-08 3 views
1

У меня есть 2 действия - «A» содержит фрагмент со списком цепочек, «B» представляет собой цепочку (показывает ее сообщения), в B я также могу отправить новое сообщение. Я хотел бы иметь возможность обновлять список разговоров A каждый раз, когда сообщение отправляется в B, поэтому, когда я нажимаю кнопку обратной связи Android, отображается представление активности.Android, управляющий предыдущей деятельностью

Ядро проблемы для меня в том, что я не запускаю A через намерение, когда я нажимаю кнопку назад Android, поэтому я не знаю, как получить этот эффект.

Благодарим за помощь!

+0

'i m не запускается A через намерение'. если A - это действие, которое вы должны было начать с намерения. это основная деятельность вашего приложения? –

+4

В этом случае операция A будет приостановлена, пока отображается активность B. Поскольку в любой момент времени может быть показано только одно действие, не имеет смысла общаться между собой. Что вам нужно сделать, это обновить источник данных в Activity B, а в 'onResume()' Activity A, обновить/перезагрузить данные. –

+0

Лучшее решение использует контент-провайдеры – Pooya

ответ

1

Когда A находится в задней части, нет гарантии, что экземпляр A даже существует в памяти. Ответ на вопрос о том, как манипулировать A из B, это не.

Некоторые правильные способы сделать это:

  • Если ваша модель (список разговоров) является Parcelable или Serializable, вы можете передать его между деятельностью по Intent. Вы можете передать его обратно из B в A, если вы запустите B для получения результата и получите его от Intent, возвращенного к 0 onActivityResult.
  • Сделайте модель постоянной, например, в базе данных или SharedPreferences.
  • Поместите модель в соответствие Service. Это будет быстрее, чем загрузка каждого из них из постоянного хранилища, но вам все равно нужно сделать его постоянным, чтобы вы не потеряли его, когда Service выключится.
Смежные вопросы