Итак, вот сценарий, в котором я сомневаюсь: У меня есть объект Stack Activity в классе Application, который будет содержать ссылку на все действия, которые в настоящее время проживают в моем Приложение. Вся деятельность вставляется в стек в onCreate() и появляется сама по onDestroy().onDestroy от деятельности, не выполняющейся сразу после Activity.finish()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyApplicationClass.stackOfActivity.add(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
MyApplicationClass.stackOfActivity.pop();
}
В MyApplicationClass (то есть класс, который расширяет приложение) я создал метод для завершения деятельности, которые находятся на вершине стека.
static public void popActivitiesFromStack(int amountOfActivitiesToBePopedOut){
if(stackOfActivity.size() >= amountOfActivitiesToBePopedOut){
for(int i = 0; i < amountOfActivitiesToBePopedOut; i++){
stackOfActivity.peek().finish();
}
}
}
Проблема заключается в том, что все итерации от FOR из «popActivitiesFromStack» выполняются до OnDestroy() выполняется, и что никакой активности не poped из в то время как для выполняется, и каждый конец (), вызываемый в FOR, переходит в одно и то же действие.
Так что мой вопрос: Почему в этом случае onDestroy() не выполняется сразу после финиша()?