summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Henigan <robert.henigan@livio.io>2021-01-21 14:14:03 -0500
committerGitHub <noreply@github.com>2021-01-21 14:14:03 -0500
commit1f213c64e3c15b4644675e07d788ebdaec38a6c9 (patch)
treea5b6713e1858f65cec6212b7d15e3425fe951094
parent6831235ba5e8c8df8ac6c66cfd86b4f31d845dab (diff)
parent004872204c6ee4534fc3b64aab61fc0430a28f8e (diff)
downloadsdl_android-1f213c64e3c15b4644675e07d788ebdaec38a6c9.tar.gz
Merge pull request #1602 from smartdevicelink/feature/issue_858
Remove handler from SdlRemoteDisplay
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/streaming/video/SdlRemoteDisplay.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/streaming/video/SdlRemoteDisplay.java b/android/sdl_android/src/main/java/com/smartdevicelink/streaming/video/SdlRemoteDisplay.java
index f704bf769..a8238323b 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/streaming/video/SdlRemoteDisplay.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/streaming/video/SdlRemoteDisplay.java
@@ -49,6 +49,10 @@ import com.smartdevicelink.util.DebugTool;
import java.lang.reflect.Constructor;
import java.util.concurrent.Callable;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
/**
* SdlRemoteDisplay is an abstract class that should be extended by developers to create their remote displays.
@@ -64,7 +68,8 @@ public abstract class SdlRemoteDisplay extends Presentation {
protected Window w;
protected View mainView;
- protected final Handler handler = new Handler();
+ protected final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
+ protected ScheduledFuture<?> refreshTaskScheduledFuture;
protected final Handler uiHandler = new Handler(Looper.getMainLooper());
protected Callback callback;
@@ -88,11 +93,13 @@ public abstract class SdlRemoteDisplay extends Presentation {
}
protected void startRefreshTask() {
- handler.postDelayed(mStartRefreshTaskCallback, REFRESH_RATE_MS);
+ refreshTaskScheduledFuture = executor.scheduleAtFixedRate(mStartRefreshTaskCallback, REFRESH_RATE_MS, REFRESH_RATE_MS, TimeUnit.MILLISECONDS);
}
protected void stopRefreshTask() {
- handler.removeCallbacks(mStartRefreshTaskCallback);
+ if (refreshTaskScheduledFuture != null) {
+ refreshTaskScheduledFuture.cancel(false);
+ }
}
protected final Runnable mStartRefreshTaskCallback = new Runnable() {
@@ -103,8 +110,6 @@ public abstract class SdlRemoteDisplay extends Presentation {
if (mainView != null) {
mainView.invalidate();
}
-
- handler.postDelayed(this, REFRESH_RATE_MS);
}
};