package moe.yuuta.ext; import android.os.Handler; import android.os.Looper; import android.util.Log; import androidx.annotation.Nullable; import java.util.concurrent.Executor; /** * https://stackoverflow.com/a/21256419/6792243 */ public class HandlerThreadExecutor implements Executor { private final Handler mHandler; public HandlerThreadExecutor(@Nullable Handler optionalHandler) { mHandler = optionalHandler != null ? optionalHandler : new Handler(Looper.getMainLooper()); } @Override public void execute(Runnable command) { Log.d("Debug", "execute: " + command.toString()); mHandler.post(command); Log.d("Debug", "done executing"); // } }