I would like to call different code (callbacks) from within a background thread loop and use that background thread to perform the work. It would be similar to delegates in C#.
public class test {
    private boolean keepRunning;
    private boolean messageReady;
    private MyClass myClass;
    void LongBackgroundWork(){
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                while (keepRunning) {
                    if (messageReady){
                        myClass.callback();  // call different methods here 
                                    //   to be decided at runtime and run on this worker thread
                    }
                }
            }
        });
        thread.start();
    }
}
I want to use the background thread not the UI thread. I want to set a callback from within myClass to choose what code is called. It's easy in C# how to do it Java. I don't have much experience in Java and don't understand what mechanism to use. Should I be using a handler? Can a handler run code on a background thread?