diff options
| -rw-r--r-- | core/java/com/android/internal/infra/AbstractMultiplePendingRequestsRemoteService.java | 2 | ||||
| -rw-r--r-- | core/java/com/android/internal/infra/AbstractRemoteService.java | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/core/java/com/android/internal/infra/AbstractMultiplePendingRequestsRemoteService.java b/core/java/com/android/internal/infra/AbstractMultiplePendingRequestsRemoteService.java index 6c01780dac76..2a9025d35339 100644 --- a/core/java/com/android/internal/infra/AbstractMultiplePendingRequestsRemoteService.java +++ b/core/java/com/android/internal/infra/AbstractMultiplePendingRequestsRemoteService.java @@ -61,7 +61,7 @@ public abstract class AbstractMultiplePendingRequestsRemoteService<S final int size = mPendingRequests.size(); if (mVerbose) Slog.v(mTag, "Sending " + size + " pending requests"); for (int i = 0; i < size; i++) { - mPendingRequests.get(i).run(); + handlePendingRequest(mPendingRequests.get(i)); } mPendingRequests.clear(); } diff --git a/core/java/com/android/internal/infra/AbstractRemoteService.java b/core/java/com/android/internal/infra/AbstractRemoteService.java index d5f7ba57a694..18414cf93bc8 100644 --- a/core/java/com/android/internal/infra/AbstractRemoteService.java +++ b/core/java/com/android/internal/infra/AbstractRemoteService.java @@ -107,7 +107,7 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I private int mServiceExitSubReason; /** Requests that have been scheduled, but that are not finished yet */ - private final ArrayList<BasePendingRequest<S, I>> mUnfinishedRequests = new ArrayList<>(); + protected final ArrayList<BasePendingRequest<S, I>> mUnfinishedRequests = new ArrayList<>(); /** * Callback called when the service dies. @@ -673,6 +673,11 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I mCancelled = true; } + S service = mWeakService.get(); + if (service != null) { + service.finishRequest(this); + } + onCancel(); return true; } |