diff options
author | Jeff Sharkey <jsharkey@android.com> | 2011-05-28 19:36:26 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2011-06-01 17:56:23 -0700 |
commit | 287bd83f9ea257594e0d483d3851236139e5744e (patch) | |
tree | d2ea25615298d8ebccbdd824a4cf3f8af4b8cd6a | |
parent | d840b66556b4a0a990189cfb28cd3a65ebb39d72 (diff) | |
download | frameworks_base-287bd83f9ea257594e0d483d3851236139e5744e.zip frameworks_base-287bd83f9ea257594e0d483d3851236139e5744e.tar.gz frameworks_base-287bd83f9ea257594e0d483d3851236139e5744e.tar.bz2 |
Snapshot PID/UID when enqueuing events.
Since ProcessRecord can change before event is processed, snapshot
PID/UID values when enqueuing.
Change-Id: I281e63310c8fc6c3761ae00e80e06654b18b3e17
-rw-r--r-- | services/java/com/android/server/am/ActivityManagerService.java | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index b463e56..5f52056 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -25,7 +25,6 @@ import com.android.server.ProcessStats; import com.android.server.SystemServer; import com.android.server.Watchdog; import com.android.server.am.ActivityStack.ActivityState; -import com.android.server.net.NetworkPolicyManagerService; import com.android.server.wm.WindowManagerService; import dalvik.system.Zygote; @@ -1301,15 +1300,16 @@ public final class ActivityManagerService extends ActivityManagerNative break; } case DISPATCH_FOREGROUND_ACTIVITIES_CHANGED: { - final ProcessRecord app = (ProcessRecord) msg.obj; - final boolean foregroundActivities = msg.arg1 != 0; - dispatchForegroundActivitiesChanged( - app.pid, app.info.uid, foregroundActivities); + final int pid = msg.arg1; + final int uid = msg.arg2; + final boolean foregroundActivities = (Boolean) msg.obj; + dispatchForegroundActivitiesChanged(pid, uid, foregroundActivities); break; } case DISPATCH_PROCESS_DIED: { - final ProcessRecord app = (ProcessRecord) msg.obj; - dispatchProcessDied(app.pid, app.info.uid); + final int pid = msg.arg1; + final int uid = msg.arg2; + dispatchProcessDied(pid, uid); break; } } @@ -9260,7 +9260,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } - mHandler.obtainMessage(DISPATCH_PROCESS_DIED, app).sendToTarget(); + mHandler.obtainMessage(DISPATCH_PROCESS_DIED, app.pid, app.info.uid, null).sendToTarget(); // If the caller is restarting this app, then leave it in its // current lists and let the caller take care of it. @@ -12821,8 +12821,8 @@ public final class ActivityManagerService extends ActivityManagerNative app.curSchedGroup = schedGroup; if (hadForegroundActivities != app.foregroundActivities) { - mHandler.obtainMessage(DISPATCH_FOREGROUND_ACTIVITIES_CHANGED, - app.foregroundActivities ? 1 : 0, 0, app).sendToTarget(); + mHandler.obtainMessage(DISPATCH_FOREGROUND_ACTIVITIES_CHANGED, app.pid, app.info.uid, + app.foregroundActivities).sendToTarget(); } return adj; |