From 8648a15406d43c8af12e9cfe2355b1eee201d479 Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Thu, 25 Feb 2016 16:22:38 -0800 Subject: [PATCH] Using Message.obtain() to decrease number of Messages allocated. BUG: 26906985 Change-Id: Ide8c6e308dcc83e9627ec775a4d977d17cd2f0a9 --- .../shell/BugreportProgressService.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java index dcb90cfab03b4..c99ec911020d9 100644 --- a/packages/Shell/src/com/android/shell/BugreportProgressService.java +++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java @@ -149,6 +149,9 @@ public class BugreportProgressService extends Service { private static final int MSG_SCREENSHOT_REQUEST = 4; private static final int MSG_SCREENSHOT_RESPONSE = 5; + // Passed to Message.obtain() when msg.arg2 is not used. + private static final int UNUSED_ARG2 = -2; + /** * Delay before a screenshot is taken. *

@@ -664,11 +667,8 @@ public class BugreportProgressService extends Service { final String screenshotPath = new File(mScreenshotsDir, info.getPathNextScreenshot()).getAbsolutePath(); - final Message requestMsg = new Message(); - requestMsg.what = MSG_SCREENSHOT_REQUEST; - requestMsg.arg1 = id; - requestMsg.obj = screenshotPath; - mScreenshotHandler.sendMessage(requestMsg); + Message.obtain(mScreenshotHandler, MSG_SCREENSHOT_REQUEST, id, UNUSED_ARG2, screenshotPath) + .sendToTarget(); } /** @@ -694,12 +694,8 @@ public class BugreportProgressService extends Service { boolean taken = takeScreenshot(mContext, screenshotFile); setTakingScreenshot(false); - final Message resultMsg = new Message(); - resultMsg.what = MSG_SCREENSHOT_RESPONSE; - resultMsg.arg1 = requestMsg.arg1; - resultMsg.arg2 = taken ? 1 : 0; - resultMsg.obj = screenshotFile; - mMainHandler.sendMessage(resultMsg); + Message.obtain(mMainHandler, MSG_SCREENSHOT_RESPONSE, requestMsg.arg1, taken ? 1 : 0, + screenshotFile).sendToTarget(); } private void handleScreenshotResponse(Message resultMsg) {