diff --git a/core/java/com/android/internal/app/procstats/DumpUtils.java b/core/java/com/android/internal/app/procstats/DumpUtils.java index 2785c21baf953..bce0d6076d24a 100644 --- a/core/java/com/android/internal/app/procstats/DumpUtils.java +++ b/core/java/com/android/internal/app/procstats/DumpUtils.java @@ -93,7 +93,6 @@ public final class DumpUtils { STATE_LABELS[STATE_BOUND_TOP_OR_FGS] = "Bnd TopFgs"; STATE_LABELS[STATE_FGS] = " Fgs"; STATE_LABELS[STATE_IMPORTANT_FOREGROUND] = " Imp Fg"; - STATE_LABELS[STATE_IMPORTANT_FOREGROUND] = " Imp Fg"; STATE_LABELS[STATE_IMPORTANT_BACKGROUND] = " Imp Bg"; STATE_LABELS[STATE_BACKUP] = " Backup"; STATE_LABELS[STATE_SERVICE] = " Service"; diff --git a/core/java/com/android/internal/app/procstats/ProcessState.java b/core/java/com/android/internal/app/procstats/ProcessState.java index 4bced27cafb4e..d259b7fe07821 100644 --- a/core/java/com/android/internal/app/procstats/ProcessState.java +++ b/core/java/com/android/internal/app/procstats/ProcessState.java @@ -1550,6 +1550,10 @@ public final class ProcessState { final int key = mDurations.getKeyAt(i); final int type = SparseMappingTable.getIdFromKey(key); final int aggregatedType = DumpUtils.aggregateCurrentProcessState(type); + if ((type % STATE_COUNT) == STATE_SERVICE_RESTARTING) { + // Skip restarting service state -- that is not actually a running process. + continue; + } long time = mDurations.getValue(key); if (mCurCombinedState == type) { @@ -1563,7 +1567,9 @@ public final class ProcessState { durationByState.put(aggregatedType, time); } } - if (!didCurState && mCurCombinedState != STATE_NOTHING) { + if (!didCurState && mCurCombinedState != STATE_NOTHING + && (mCurCombinedState % STATE_COUNT) != STATE_SERVICE_RESTARTING) { + // Skip restarting service state -- that is not actually a running process. final int aggregatedType = DumpUtils.aggregateCurrentProcessState(mCurCombinedState); int index = durationByState.indexOfKey(aggregatedType); if (index >= 0) {