frameworks/base: Fix to release references in ActivityManagerService
ServiceRecord's bindings is a hashmap to keep track of all active bindings to the service. This is not cleared when the service is brought down by activity manager. This adds up the references to IntentBindRecords and its references to ServiceRecord. Fix is to clear the bindings. ServiceRecord's restarter is a reference to the service and is not cleared when the service is brought down by activity manager. This adds up the references to ServiceRecord. Fix is to set the reference to null when the service is brought down by activity manager. Change-Id: Ica448cd5f60192c8adb23209b5d0e2cf0c04e446
This commit is contained in:
committed by
Dianne Hackborn
parent
3ce86481cb
commit
a207ce2aba
@@ -9093,6 +9093,14 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
if (DEBUG_SERVICE) Slog.v(
|
||||
TAG, "Removed service that is not running: " + r);
|
||||
}
|
||||
|
||||
if (r.bindings.size() > 0) {
|
||||
r.bindings.clear();
|
||||
}
|
||||
|
||||
if (r.restarter instanceof ServiceRestarter) {
|
||||
((ServiceRestarter)r.restarter).setService(null);
|
||||
}
|
||||
}
|
||||
|
||||
ComponentName startServiceLocked(IApplicationThread caller,
|
||||
|
||||
Reference in New Issue
Block a user