Согласно документации SDK, то, что вы видите, является предполагаемым поведением. Взгляните на блок-схему в документации по Activity - Activity Lifecycle .
Программно вы можете преодолеть это, сохранив элемент экземпляра для отслеживания того, вызывался ли onResume раньше - при первом вызове установите переменную и верните, например,
private boolean resumeHasRun = false;
@Override
protected void onResume() {
super.onResume();
if (!resumeHasRun) {
resumeHasRun = true;
return;
}
// Normal case behavior follows
}