diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 31e9a2d5daafb..6754df9ac6fd2 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -1541,7 +1541,7 @@ public final class ActivityThread extends ClientTransactionHandler { public void scheduleTrimMemory(int level) { final Runnable r = PooledLambda.obtainRunnable(ActivityThread::handleTrimMemory, - ActivityThread.this, level); + ActivityThread.this, level).recycleOnUse(); // Schedule trimming memory after drawing the frame to minimize jank-risk. Choreographer choreographer = Choreographer.getMainThreadInstance(); if (choreographer != null) { diff --git a/core/java/android/app/UiAutomation.java b/core/java/android/app/UiAutomation.java index c0903b65737cf..5a25f5aed1616 100644 --- a/core/java/android/app/UiAutomation.java +++ b/core/java/android/app/UiAutomation.java @@ -1197,10 +1197,9 @@ public final class UiAutomation { } if (listener != null) { // Calling out only without a lock held. - mLocalCallbackHandler.post(PooledLambda.obtainRunnable( + mLocalCallbackHandler.sendMessage(PooledLambda.obtainMessage( OnAccessibilityEventListener::onAccessibilityEvent, - listener, AccessibilityEvent.obtain(event)) - .recycleOnUse()); + listener, AccessibilityEvent.obtain(event))); } } diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 1127db134d662..877c8567b9d0b 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -3188,10 +3188,10 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D // Kill the running processes. Post on handle since we don't want to hold the service lock // while calling into AM. - final Runnable r = PooledLambda.obtainRunnable( + final Message m = PooledLambda.obtainMessage( ActivityManagerInternal::killProcessesForRemovedTask, mService.mAmInternal, procsToKill); - mService.mH.post(r); + mService.mH.sendMessage(m); } /** diff --git a/services/core/java/com/android/server/am/OomAdjProfiler.java b/services/core/java/com/android/server/am/OomAdjProfiler.java index 6230e0dfaa55a..71f0db52ce5f8 100644 --- a/services/core/java/com/android/server/am/OomAdjProfiler.java +++ b/services/core/java/com/android/server/am/OomAdjProfiler.java @@ -91,9 +91,9 @@ public class OomAdjProfiler { return; } mSystemServerCpuTimeUpdateScheduled = true; - BackgroundThread.getHandler().post(PooledLambda.obtainRunnable( + BackgroundThread.getHandler().sendMessage(PooledLambda.obtainMessage( OomAdjProfiler::updateSystemServerCpuTime, - this, mOnBattery, mScreenOff).recycleOnUse()); + this, mOnBattery, mScreenOff)); } } diff --git a/services/core/java/com/android/server/am/WindowProcessController.java b/services/core/java/com/android/server/am/WindowProcessController.java index da172fb105117..f6f4db6a2d375 100644 --- a/services/core/java/com/android/server/am/WindowProcessController.java +++ b/services/core/java/com/android/server/am/WindowProcessController.java @@ -38,6 +38,7 @@ import android.app.servertransaction.ConfigurationChangeItem; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.res.Configuration; +import android.os.Message; import android.os.RemoteException; import android.util.ArraySet; import android.util.Log; @@ -510,48 +511,50 @@ public class WindowProcessController extends ConfigurationContainer mListener.clearProfilerIfNeeded()); + mAtm.mH.sendMessage(PooledLambda.obtainMessage( + WindowProcessListener::clearProfilerIfNeeded, mListener)); } void updateProcessInfo(boolean updateServiceConnectionActivities, boolean updateLru, boolean activityChange, boolean updateOomAdj) { if (mListener == null) return; // Posting on handler so WM lock isn't held when we call into AM. - final Runnable r = PooledLambda.obtainRunnable(WindowProcessListener::updateProcessInfo, + final Message m = PooledLambda.obtainMessage(WindowProcessListener::updateProcessInfo, mListener, updateServiceConnectionActivities, updateLru, activityChange, updateOomAdj); - mAtm.mH.post(r); + mAtm.mH.sendMessage(m); } void updateServiceConnectionActivities() { if (mListener == null) return; // Posting on handler so WM lock isn't held when we call into AM. - mAtm.mH.post(() -> mListener.updateServiceConnectionActivities()); + mAtm.mH.sendMessage(PooledLambda.obtainMessage( + WindowProcessListener::updateServiceConnectionActivities, mListener)); } void setPendingUiClean(boolean pendingUiClean) { if (mListener == null) return; // Posting on handler so WM lock isn't held when we call into AM. - final Runnable r = PooledLambda.obtainRunnable( + final Message m = PooledLambda.obtainMessage( WindowProcessListener::setPendingUiClean, mListener, pendingUiClean); - mAtm.mH.post(r); + mAtm.mH.sendMessage(m); } void setPendingUiCleanAndForceProcessStateUpTo(int newState) { if (mListener == null) return; // Posting on handler so WM lock isn't held when we call into AM. - final Runnable r = PooledLambda.obtainRunnable( + final Message m = PooledLambda.obtainMessage( WindowProcessListener::setPendingUiCleanAndForceProcessStateUpTo, mListener, newState); - mAtm.mH.post(r); + mAtm.mH.sendMessage(m); } void setRemoved(boolean removed) { if (mListener == null) return; // Posting on handler so WM lock isn't held when we call into AM. - final Runnable r = PooledLambda.obtainRunnable( + final Message m = PooledLambda.obtainMessage( WindowProcessListener::setRemoved, mListener, removed); - mAtm.mH.post(r); + mAtm.mH.sendMessage(m); } @Override