diff options
author | Jonathan Scott <scottjonathan@google.com> | 2022-07-26 07:01:26 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-07-26 07:01:26 +0000 |
commit | 39a96329ffa1334bce040d703a9709f43b8bb7dd (patch) | |
tree | 2975fb45a04a58be9ca65a145992db390d8d55cc | |
parent | 1f33e5e5af238e2d9a87b465ac3b6d7e5a08ca09 (diff) | |
parent | 6e460ebb6e92eaec7629828bc02298158bc1c6ad (diff) | |
download | connectedappssdk-39a96329ffa1334bce040d703a9709f43b8bb7dd.tar.gz |
RESTRICT AUTOMERGE: Not relevant on U version - Shutdown created ScheduledExecutor when connector is destroyed. am: 029619e4b9 am: c4c49149b5 am: 6e460ebb6e
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/connectedappssdk/+/19394832
Change-Id: I9939b78af00e26fa8e125da5be363a8bdd43f236
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | sdk/src/main/java/com/google/android/enterprise/connectedapps/AbstractProfileConnector.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sdk/src/main/java/com/google/android/enterprise/connectedapps/AbstractProfileConnector.java b/sdk/src/main/java/com/google/android/enterprise/connectedapps/AbstractProfileConnector.java index cc71c7b..dd84c7d 100644 --- a/sdk/src/main/java/com/google/android/enterprise/connectedapps/AbstractProfileConnector.java +++ b/sdk/src/main/java/com/google/android/enterprise/connectedapps/AbstractProfileConnector.java @@ -38,6 +38,7 @@ public abstract class AbstractProfileConnector private final Context context; private final ScheduledExecutorService scheduledExecutorService; + private final boolean createdScheduledExecutorService; private final ConnectionBinder binder; private final String serviceClassName; private final @Nullable ProfileType primaryProfileType; @@ -50,8 +51,10 @@ public abstract class AbstractProfileConnector } if (builder.scheduledExecutorService == null) { scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); + createdScheduledExecutorService = true; } else { scheduledExecutorService = builder.scheduledExecutorService; + createdScheduledExecutorService = false; } if (builder.binder == null) { @@ -71,6 +74,13 @@ public abstract class AbstractProfileConnector } @Override + protected void finalize() throws Throwable { + if (createdScheduledExecutorService) { + scheduledExecutorService.shutdownNow(); + } + } + + @Override public void startConnecting() { if (VERSION.SDK_INT < VERSION_CODES.O) { return; |