Android provides three different APIs to run jobs in the future. All of them have their benefits and downsides. Semantic changes between API levels presents an additional challenge for programmers. Not only is it hard to know when to use the proper API, but you will also end up with many different paths in your code all doing the same task for different environments. Your app should be smart and run jobs only when it's the right time and all conditions are met. This talk will give you an overview about all options you have on Android and how to master them in an efficient way.