Android onCreate onResume

У меня проблема. Когда я впервые запускаю приложение для Android, в основном действии вызывается как onCreate, так и onResume. но я хочу, чтобы называться только onCreate.

Что я могу сделать?

Ответы

Ответ 1

В соответствии с документами SDK, что вы видите, это предполагаемое поведение. Посмотрите блок-схему в документах для Activity - Жизненный цикл активности.

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

private boolean resumeHasRun = false;

@Override
protected void onResume() {
    super.onResume();
    if (!resumeHasRun) {
        resumeHasRun = true;
        return;
    }
    // Normal case behavior follows
}

Ответ 2

Правильный ответ заключается в использовании метода Activity onRestart(). Вероятно, это то, что вы искали.

Ответ 4

Как вы можете видеть в API, жизненный цикл активности всегда вызывает onResume перед показом активности. http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

Я думаю, вы могли бы сделать глобальное логическое для первого доступа и установить его в false. Затем переопределите onResume и проверьте переменную. Если false, установите значение true и return, если true, вызовите super.onResume.

Должен работать, но я не знаю, можно ли его обрабатывать проще, и у меня нет доступа к sdk, чтобы его протестировать.