Multi-threading and concurrency is one of the most difficult challenges in software development. When writing apps for Android, this has proven to be even more of a challenge because the way the framework and APIs are designed. In this session we will look at why this is so difficult, take a deep dive into how threading is implemented on Android and finally how developers can make their work easier by gaining a better understanding of threads work on Android and the tools and APIs available. This session will not require any existing knowledge about threads, RxJava, java.util.concurrent or any other concurrency or asynchronous API.