I can see this always executing on the main thread.
Code sample :
private interface Task {
    void run() throws ListenerException;
}
private void runUITask(final Task task) {
    (new Runnable() {
        public void run() {
            task.run();
        }
    }).run();
}
Thank you in advance !!