diff options
| -rw-r--r-- | core/java/android/app/ActivityThread.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index df63ab342dfe..23dc6dd2ed04 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -117,6 +117,7 @@ import libcore.io.EventLogger; import libcore.io.IoUtils; import dalvik.system.CloseGuard; +import dalvik.system.VMRuntime; final class RemoteServiceException extends AndroidRuntimeException { public RemoteServiceException(String msg) { @@ -1269,8 +1270,15 @@ public final class ActivityThread { synchronized (this) { if (mLastProcessState != processState) { mLastProcessState = processState; - - // Update Dalvik state here based on ActivityManager.PROCESS_STATE_* constants. + // Update Dalvik state based on ActivityManager.PROCESS_STATE_* constants. + final int DALVIK_PROCESS_STATE_JANK_PERCEPTIBLE = 0; + final int DALVIK_PROCESS_STATE_JANK_IMPERCEPTIBLE = 1; + int dalvikProcessState = DALVIK_PROCESS_STATE_JANK_IMPERCEPTIBLE; + // TODO: Tune this since things like gmail sync are important background but not jank perceptible. + if (processState <= ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND) { + dalvikProcessState = DALVIK_PROCESS_STATE_JANK_PERCEPTIBLE; + } + VMRuntime.getRuntime().updateProcessState(dalvikProcessState); if (false) { Slog.i(TAG, "******************* PROCESS STATE CHANGED TO: " + processState + (fromIpc ? " (from ipc": "")); |