Я пытался использовать этот код для запуска нескольких Операций с родительского действия:
for (int i=0; i<NUM_ACTIVITIES; i++)
{
Intent intent = new Intent(this, MyActivity.class);
startActivity(intent);
}
Однако согласно моему журналу в MyActivity.onCreate()
, только 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);
}
}
Это должно создать желаемый стек ..