2013-07-03 3 views
1

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

от B, когда я хочу, чтобы перейти к А я думал использовать

, но я думаю, что его ошибка, потому что это будет ясно и другие случаи. Какое намерение я должен использовать в случаях? в приложении C# windows мы будем делать B.hide(); A.show(). то из A мы могли бы сделать A.hide(); B.SHOW() или B1.show(); как я могу сделать это в андроиде, пожалуйста?

+1

Ваш дизайн испорчен. Вам не следует пытаться создать 2 экземпляра одного и того же действия. Вместо этого используйте дополнительные опции (или какой-либо другой механизм) для передачи данных, которые будут отображаться в экземпляре. C# (Windows) и Android - очень разные звери. – Simon

+0

Я хотел бы предоставить некоторую информацию. его чат-приложение. поэтому A является основным видом деятельности, B, B1 - чатами. очевидно, я хочу, чтобы пользователь мог переключать чаты. поэтому пользователь находится в A, затем входит в комнату B., тогда я хочу, чтобы он вернулся к A перейти к B1, но без закрытия B, чтобы он мог вернуться позже. не может это сделать? – user1855793

+0

Итак ... Почему вы не могли использовать одно и то же действие для отображения разных окон чата? Похоже, вы просто скажете «_switch на этот разговор», что означало бы переключение отображаемых данных. – jahroy

ответ

0

Если B - это мероприятие, у вас не может быть двух разных экземпляров.

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

Вам необходимо найти способ изменить внешний вид и поведение B, а не создавать новый экземпляр.

Пожалуйста, ознакомьтесь с информацией о Activity Lifecycle.

0

использование FLAG_ACTIVITY_REORDER_TO_FRONT

из дока

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

+0

У меня есть как андроид: launchMode = "singleTask". флаг, который вы упоминаете, работает для B, идущего в A (он не проходит через создание). Но он не работает для A, возвращающегося к B. он запускает новое действие и проходит через создание. У меня есть B, B1 в arraylist действий, и поэтому я хотел бы выбрать один и открыть его – user1855793

+0

@ user1855793 - Похоже, вы действительно пытаетесь бороться с жизненным циклом активности. Кажется, это действительно плохая идея. – jahroy

Смежные вопросы