Loading packages/SettingsLib/src/com/android/settingslib/utils/ThreadUtils.java +19 −5 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settingslib.utils; import android.os.Handler; import android.os.Looper; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; Loading @@ -26,7 +27,7 @@ public class ThreadUtils { private static volatile Thread sMainThread; private static volatile Handler sMainThreadHandler; private static volatile ExecutorService sSingleThreadExecutor; private static volatile ExecutorService sThreadExecutor; /** * Returns true if the current thread is the UI thread. Loading Loading @@ -64,10 +65,16 @@ public class ThreadUtils { * @Return A future of the task that can be monitored for updates or cancelled. */ public static Future postOnBackgroundThread(Runnable runnable) { if (sSingleThreadExecutor == null) { sSingleThreadExecutor = Executors.newSingleThreadExecutor(); return getThreadExecutor().submit(runnable); } return sSingleThreadExecutor.submit(runnable); /** * Posts callable in background using shared background thread pool. * * @Return A future of the task that can be monitored for updates or cancelled. */ public static Future postOnBackgroundThread(Callable callable) { return getThreadExecutor().submit(callable); } /** Loading @@ -77,4 +84,11 @@ public class ThreadUtils { getUiThreadHandler().post(runnable); } private static synchronized ExecutorService getThreadExecutor() { if (sThreadExecutor == null) { sThreadExecutor = Executors.newFixedThreadPool( Runtime.getRuntime().availableProcessors()); } return sThreadExecutor; } } packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/ThreadUtilsTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -50,7 +50,7 @@ public class ThreadUtilsTest { } @Test public void testPostOnMainThread_shouldRunOnMainTread() { public void testPostOnMainThread_shouldRunOnMainThread() { TestRunnable cr = new TestRunnable(); ShadowLooper.pauseMainLooper(); ThreadUtils.postOnMainThread(cr); Loading Loading
packages/SettingsLib/src/com/android/settingslib/utils/ThreadUtils.java +19 −5 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settingslib.utils; import android.os.Handler; import android.os.Looper; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; Loading @@ -26,7 +27,7 @@ public class ThreadUtils { private static volatile Thread sMainThread; private static volatile Handler sMainThreadHandler; private static volatile ExecutorService sSingleThreadExecutor; private static volatile ExecutorService sThreadExecutor; /** * Returns true if the current thread is the UI thread. Loading Loading @@ -64,10 +65,16 @@ public class ThreadUtils { * @Return A future of the task that can be monitored for updates or cancelled. */ public static Future postOnBackgroundThread(Runnable runnable) { if (sSingleThreadExecutor == null) { sSingleThreadExecutor = Executors.newSingleThreadExecutor(); return getThreadExecutor().submit(runnable); } return sSingleThreadExecutor.submit(runnable); /** * Posts callable in background using shared background thread pool. * * @Return A future of the task that can be monitored for updates or cancelled. */ public static Future postOnBackgroundThread(Callable callable) { return getThreadExecutor().submit(callable); } /** Loading @@ -77,4 +84,11 @@ public class ThreadUtils { getUiThreadHandler().post(runnable); } private static synchronized ExecutorService getThreadExecutor() { if (sThreadExecutor == null) { sThreadExecutor = Executors.newFixedThreadPool( Runtime.getRuntime().availableProcessors()); } return sThreadExecutor; } }
packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/ThreadUtilsTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -50,7 +50,7 @@ public class ThreadUtilsTest { } @Test public void testPostOnMainThread_shouldRunOnMainTread() { public void testPostOnMainThread_shouldRunOnMainThread() { TestRunnable cr = new TestRunnable(); ShadowLooper.pauseMainLooper(); ThreadUtils.postOnMainThread(cr); Loading