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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user