diff options
Diffstat (limited to 'core/java/android/net/ConnectivityManager.java')
| -rw-r--r-- | core/java/android/net/ConnectivityManager.java | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index 6cef73dcd089..8ea540cd38cd 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -1833,30 +1833,42 @@ public class ConnectivityManager { mCallback = new ISocketKeepaliveCallback.Stub() { @Override public void onStarted(int slot) { - Binder.withCleanCallingIdentity(() -> - mExecutor.execute(() -> { - mSlot = slot; - callback.onStarted(); - })); + final long token = Binder.clearCallingIdentity(); + try { + mExecutor.execute(() -> { + mSlot = slot; + callback.onStarted(); + }); + } finally { + Binder.restoreCallingIdentity(token); + } } @Override public void onStopped() { - Binder.withCleanCallingIdentity(() -> - mExecutor.execute(() -> { - mSlot = null; - callback.onStopped(); - })); + final long token = Binder.clearCallingIdentity(); + try { + mExecutor.execute(() -> { + mSlot = null; + callback.onStopped(); + }); + } finally { + Binder.restoreCallingIdentity(token); + } mExecutor.shutdown(); } @Override public void onError(int error) { - Binder.withCleanCallingIdentity(() -> - mExecutor.execute(() -> { - mSlot = null; - callback.onError(error); - })); + final long token = Binder.clearCallingIdentity(); + try { + mExecutor.execute(() -> { + mSlot = null; + callback.onError(error); + }); + } finally { + Binder.restoreCallingIdentity(token); + } mExecutor.shutdown(); } |
