I would push that into a SingleThreadExecutor, you could overwhelm the CPU by continuously rotating the device and create quite a few thread along the way. The Executor might not solve it but will at least queue it. Always good practice to hold execution within java.util.concurrent