There are some managers in the libraries (I'm sure others will recommend) but like me you may find it better in the long term to build one to meet your exact needs.
It can be quite simple, and can be general to Java and not just Android. It could simply be an ArrayList of Runnables. One method adds a runnable to the back of the ArrayList. The first time this method is invoked a new Thread is initialized and run. This Thread just repeatedly removes a Runnable from the front of the ArrayList, and executes it. When the ArrayList is empty the thread exits.
You need to take care to keep access to the ArrayList thread safe, but it really can be that simple.
Things get a little more complex if you need to add priorities or to cancel tasks on the queue or in progress.