Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(221)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java

Issue 2327833002: Address HandlerLeak lint warnings. (Closed)
Patch Set: tedchoc's comment Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java b/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java
index 44ddeabd01cf46032143d55b7d83605bed6f492f..0524399e54361e0d0835fcf8bcf1905795cb0421 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java
@@ -4,6 +4,7 @@
package org.chromium.chrome.browser.gsa;
+import android.annotation.SuppressLint;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -39,7 +40,8 @@ public class GSAServiceClient {
public static final String KEY_GSA_PACKAGE_NAME = "ssb_service:ssb_package_name";
/** Messenger to handle incoming messages from the service */
- private final Messenger mMessenger = new Messenger(new IncomingHandler());
+ private final Messenger mMessenger;
+ private final IncomingHandler mHandler;
private final GSAServiceConnection mConnection;
private final GSAHelper mGsaHelper;
private Context mContext;
@@ -52,6 +54,7 @@ public class GSAServiceClient {
* Handler of incoming messages from service.
*/
@SuppressFBWarnings("BC_IMPOSSIBLE_CAST")
+ @SuppressLint("HandlerLeak")
private class IncomingHandler extends Handler {
@Override
public void handleMessage(Message msg) {
@@ -71,6 +74,8 @@ public class GSAServiceClient {
* Constructs an instance of this class.
*/
public GSAServiceClient(Context context) {
+ mHandler = new IncomingHandler();
+ mMessenger = new Messenger(mHandler);
mContext = context;
mConnection = new GSAServiceConnection();
mGsaHelper = ((ChromeApplication) mContext.getApplicationContext())
@@ -100,6 +105,9 @@ public class GSAServiceClient {
mContext.unbindService(mConnection);
mContext = null;
mService = null;
+
+ // Remove pending handler actions to prevent memory leaks.
+ mHandler.removeCallbacksAndMessages(null);
}
/**

Powered by Google App Engine
This is Rietveld 408576698