Use AsyncTasks and ThreadPoolExecutors to block calls to the worker threads is an option. When our background tasks are completed, we can use callbacks or message windows to show the results of the process in question.
Overall, are enough applications that have one or more of the failures detailed herein. It is important to consider all of them. And although I have been a little on the surface of the problems, I hope the article helps to improve the operation and interface of any existing or future applications.