Skip receiver if failed linkToDeath to ILocationListener

linkToDeath may failed when app was dead immediately after
starting the call to requestLocationUpdates in Location
service. If receiver still record in maps, an exception
will occurred when try to remove receiver's update because
unlinkToDeath will failed.

Change-Id: Id9b00da3b17c1371d61ab4644a70cf9ee934cdcc
This commit is contained in:
Wen Jing
2014-03-27 13:42:59 +08:00
committed by Henrik Baard
parent 189bf05616
commit cb3ab221f7

View File

@@ -1450,14 +1450,13 @@ public class LocationManagerService extends ILocationManager.Stub {
if (receiver == null) {
receiver = new Receiver(listener, null, pid, uid, packageName, workSource,
hideFromAppOps);
mReceivers.put(binder, receiver);
try {
receiver.getListener().asBinder().linkToDeath(receiver, 0);
} catch (RemoteException e) {
Slog.e(TAG, "linkToDeath failed:", e);
return null;
}
mReceivers.put(binder, receiver);
}
return receiver;
}