Android - как начать цепочку действий? - PullRequest
0 голосов
/ 20 октября 2011

Я намереваюсь запустить 3 действия в цепочке (например, из основных открытых действий A, B и затем C, которые будут видны пользователю), но я не смог найти какой-либо способ сделать это в Android,Не спрашивайте меня, почему, я просто должен сделать это для восстановления моего состояния приложения, где было раньше.

Спасибо за любые идеи

Waypoint

Править:

Хорошо, я пытался открыть действия в цикле For, но они не открываются должным образом.Они прикованы цепью, но воссоздаются только когда я нажимаю кнопку назад и они отображаются мне.Мне нужно какое-то решение, которое приводит к: открыть A, если A открывается, проверить, если нужно открыть B -> ДА, открыть B, проверить, если нужно открыть C -> YES, открыть C, нет необходимости открывать другое действие -> FINISH

Ответы [ 3 ]

0 голосов
/ 20 октября 2011

Переопределить onResume -метод в каждом действии. Добавьте туда проверку и начало действия.

public void onResume() {
  if( condition )
    startActivity( intentForTheNextActivity );
}

Где condition - любое условие, которое у вас может возникнуть (в вашем примере, если B должно быть запущено, C должно быть запущено и т. Д.), А intentForTheNextActivity - это намерение для следующего действия в цепочке (например, если теперь в A , цель для B и т. д.).


Мне очень трудно понять, что именно вы пытаетесь сделать. Иногда кажется, что это цепочка (A открывает B, B открывает C и т. Д.) Иногда кажется, что вам нужен какой-то случайный поток (A открывает B, B открывает A, A открывает B, B открывает C) - что делает его действительно трудным дать вам конкретный ответ.

Что я могу сделать, так это рекомендую прочитать следующее:

Жизненный цикл активности

Запуск операций и получение результатов (в частности, методы startActivityForResult и setResult )

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

0 голосов
/ 20 октября 2011

до начала любого действия, решите, какое действие должно быть начато.Давайте возьмем ваше дело >> сначала проверьте B, если да, проверьте C, теперь откройте необходимые 1.

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

0 голосов
/ 20 октября 2011

Вы не предоставили никакой информации о том, что вы пробовали, поэтому я дам вам самый простой ответ:

метод startActivity(Intent intent), дополнительная информация здесь .


Редактировать: Хм, а как насчет этого?У меня сейчас нет SDK, но я могу представить концепцию.Я не уверен, что это работает, но я надеюсь, что это приведет вас к душе.

Давайте представим, что это код ActivityA:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (doINeedActivityB) {
        Intent activityC = new Intent(this, ActivityC.class);
        this.startActivity(activityA);
    }
    if (doINeedActivityC) {
        Intent activityC = new Intent(this, ActivityC.class);
        this.startActivity(activityC);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...