[ActivityManager] Fix ServiceRecord leakage
Symptom:
The first step of cleaning up application services is
to clear the app state from services (which set sr.app
to null). Then it clean up the service connections.
In some scenario, the Service might be removed during
the connection cleanup (i.e. the Service is no longer
needed). In that case, the Service will be removed from
ServiceMap, but won't be removed from r.app.services in
bringDownServiceLocked(line 1670) because the r.app is null.
Solution:
Remove the service connection first.
Change-Id: I644d73af58fe0e7c1c4a6c9779fe6b5d747b880d
1 file changed