diff options
author | Bhakthavatsala Raghavendra <braghave@codeaurora.org> | 2014-11-11 18:54:41 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2014-11-11 19:04:03 -0800 |
commit | a588c0ef54f45d7d33f0b86c32f653c133bdeec9 (patch) | |
tree | 56cc6bb120eac63c957765270a6d6e0a9c47c11e | |
parent | 5475aebf79c70a9967206aec7bd44177faf460da (diff) | |
download | android_packages_apps_Bluetooth-a588c0ef54f45d7d33f0b86c32f653c133bdeec9.tar.gz android_packages_apps_Bluetooth-a588c0ef54f45d7d33f0b86c32f653c133bdeec9.tar.bz2 android_packages_apps_Bluetooth-a588c0ef54f45d7d33f0b86c32f653c133bdeec9.zip |
Bluetooth: Cleanup the handler threads properly
Cleanup the handler threads in Advertisementmanager
and ScanManager so that there are no resource leaks
CRs-fixed: 749335
Change-Id: Ia51899f449d57c1ef68a9516b8472d1fd492572b
-rw-r--r-- | src/com/android/bluetooth/gatt/AdvertiseManager.java | 10 | ||||
-rw-r--r-- | src/com/android/bluetooth/gatt/ScanManager.java | 10 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/com/android/bluetooth/gatt/AdvertiseManager.java b/src/com/android/bluetooth/gatt/AdvertiseManager.java index a2c859316..6222fb534 100644 --- a/src/com/android/bluetooth/gatt/AdvertiseManager.java +++ b/src/com/android/bluetooth/gatt/AdvertiseManager.java @@ -87,6 +87,16 @@ class AdvertiseManager { void cleanup() { logd("advertise clients cleared"); mAdvertiseClients.clear(); + + if (mHandler != null) { + // Shut down the thread + mHandler.removeCallbacksAndMessages(null); + Looper looper = mHandler.getLooper(); + if (looper != null) { + looper.quit(); + } + mHandler = null; + } } /** diff --git a/src/com/android/bluetooth/gatt/ScanManager.java b/src/com/android/bluetooth/gatt/ScanManager.java index 51950c006..bbbede26d 100644 --- a/src/com/android/bluetooth/gatt/ScanManager.java +++ b/src/com/android/bluetooth/gatt/ScanManager.java @@ -101,6 +101,16 @@ public class ScanManager { mRegularScanClients.clear(); mBatchClients.clear(); mScanNative.cleanup(); + + if (mHandler != null) { + // Shut down the thread + mHandler.removeCallbacksAndMessages(null); + Looper looper = mHandler.getLooper(); + if (looper != null) { + looper.quit(); + } + mHandler = null; + } } /** |