Android: Возможный запустить несколько экземпляров Действия в той же задаче?

Я пытался использовать этот код для запуска нескольких Операций с родительского действия:

for (int i=0; i<NUM_ACTIVITIES; i++) 
{
    Intent intent = new Intent(this, MyActivity.class);
    startActivity(intent);
}

Однако согласно моему журналу в MyActivity.onCreate(), только 1 Действие было на самом деле создано. Это поведение ожидается? Если так, что надлежащий путь состоит в том, чтобы запустить несколько Операций?

9
задан zer0stimulus 26 July 2010 в 20:00
поделиться

1 ответ

Вы не можете одновременно выполнять несколько действий сверху. Вы пытаетесь запустить их по порядку, одно за другим?

Один из способов добиться этого - запустить каждое действие для получения результата:

Intent intent = new Intent(this, MyActivity.class);
startActivityForResult(intent, 0);

Где вы используете код запроса, чтобы отслеживать, когда выполняется действие. Затем в onActivityResult вы можете запустить следующий:

protected void  onActivityResult  (int requestCode, int resultCode, Intent  data) {
  if (requestCode < NUM_ACTIVITIES) {
    Intent intent = new Intent(this, MyActivity.class);
    startActivityForResult(intent, requestCode + 1);
  }
}

Изменить: Если вы хотите, чтобы некоторые действия выполнялись сразу в фоновом режиме, вы можете связать их вместе, вызвав startActivity в onCreate каждого действия. Если вы запустите новое действие в onCreate до создания каких-либо представлений, действие никогда не будет видимым.

protected void  onCreate  (Bundle savedInstanceState) {
  int numLeft = getIntent().getIntExtra("numLeft");
  if (numLeft > 0) {
    Intent intent = new Intent(this, MyActivity.class);
    intent.putExtra("numLeft", numLeft - 1);
    startActivity(intent);
  }
}

Это должно создать желаемый стек ..

9
ответ дан 4 December 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: