The code below behaves very strangely. The GUI thread is blocked, even though "work" is a totally different thread. If I put a print statement in mouseClicked, the print executes, work keeps running.
Your typical Android mobile app is a skilled multi-tasker, capable of performing complex and long-running tasks in the background (such as handling network requests or transferring data) while ...